Penyedia pengelogan menyimpan log, kecuali untuk Console penyedia, yang hanya menampilkan log sebagai output standar. Misalnya, penyedia Azure Application Insights menyimpan log di Azure Application Insights. Beberapa penyedia dapat diaktifkan.
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateApplicationBuilder(args).Build();
// Application code should start here.
await host.RunAsync();
Kode sebelumnya menunjukkan kelas yang Program dibuat dengan templat aplikasi .NET Worker. Beberapa bagian berikutnya menyediakan sampel berdasarkan templat aplikasi .NET Worker, yang menggunakan Host Generik.
Untuk mengambil alih kumpulan penyedia pengelogan default yang ditambahkan oleh Host.CreateApplicationBuilder, panggil ClearProviders dan tambahkan penyedia pengelogan yang Anda inginkan. Misalnya, kode berikut:
Mengonfigurasi layanan yang bergantung pada ILogger
Untuk mengonfigurasi layanan yang bergantung pada ILogger<T>, gunakan injeksi konstruktor atau berikan metode pabrik. Pendekatan metode pabrik direkomendasikan hanya jika tidak ada opsi lain. Misalnya, pertimbangkan layanan yang memerlukan instans ILogger<T> yang disediakan oleh DI:
Penyedia pengelogan berikut dikirim oleh Microsoft, tetapi bukan sebagai bagian dari pustaka runtime. Mereka harus diinstal sebagai paket NuGet tambahan.
Penyedia Debug menulis output log dengan menggunakan System.Diagnostics.Debug kelas , khususnya melalui Debug.WriteLine metode dan hanya ketika debugger dilampirkan. Membuat DebugLoggerProvider instans kelas pencatat yang mengimplementasikan ILogger antarmuka.
Sumber Kejadian
Penyedia EventSource menulis ke sumber kejadian lintas platform dengan nama Microsoft-Extensions-Logging. Di Windows, penyedia menggunakan ETW.
Penyedia EventLog mengirimkan output log ke Log Peristiwa Windows. Tidak seperti penyedia lainnya, penyedia EventLogtidak mewarisi pengaturan non-penyedia default. Jika pengaturan log EventLog tidak ditentukan, pengaturan defaultnya adalah LogLevel.Warning.
Untuk mencatat peristiwa yang lebih rendah dari LogLevel.Warning, atur tingkat log secara eksplisit. Contoh berikut mengatur tingkat log default Log Peristiwa ke LogLevel.Information:
Saat disebarkan ke Azure App Service, aplikasi menggunakan pengaturan di bagian Log App Service pada halaman App Service di portal Azure. Saat pengaturan berikut diperbarui, perubahan akan langsung berlaku tanpa memerlukan mulai ulang atau penyebaran ulang aplikasi.
Lokasi default untuk file log ada di folder D:\home\LogFiles\Application . Default tambahan bervariasi menurut penyedia:
Pengelogan Aplikasi (Filesystem): Nama file sistem file default adalah diagnostics-yyyymmdd.txt. Batas ukuran file default adalah 10 MB, dan jumlah maksimum default file yang dipertahankan adalah 2.
Pengelogan Aplikasi (Blob): Nama blob default adalah {app-name}/yyyy/mm/dd/hh/{guid}_applicationLog.txt.
Penyedia ini hanya mencatat saat proyek berjalan di lingkungan Azure.
Azure log streaming
Streaming log Azure mendukung tampilan aktivitas log secara real-time dari:
Server aplikasi
Server web
Pelacakan permintaan gagal
Untuk mengonfigurasi Azure log streaming:
Buka halaman Log App Service dari halaman portal aplikasi.
Atur Pengelogan Aplikasi (Filesystem) ke Aktif.
Pilih Tingkat log. Pengaturan ini hanya berlaku untuk Azure log streaming.
Buka halaman Aliran Log untuk melihat log. Pesan yang dicatat akan dicatat dengan antarmuka ILogger.
Azure Application Insights
Paket penyedia Microsoft.Extensions.Logging.ApplicationInsights menulis log ke Azure Application Insights. Application Insights adalah layanan yang memantau aplikasi web dan menyediakan alat untuk mengkueri dan menganalisis data telemetri. Jika menggunakan penyedia ini, Anda dapat membuat kueri dan menganalisis log menggunakan alat Application Insights.
Untuk informasi selengkapnya, lihat sumber daya berikut:
Jika Anda berencana untuk mengembangkan implementasi ILoggerProvider antarmuka Anda sendiri dan implementasi kustom yang sesuai dari ILogger, pertimbangkan poin-poin berikut:
Masa pakai status log dan objek tidak boleh diasumsikan.
Implementasi ILoggerProvider akan membuat ILogger melalui metodenya ILoggerProvider.CreateLogger . Jika implementasi Anda berupaya untuk mengantrekan pesan pengelogan dengan cara yang tidak memblokir, pesan harus terlebih dahulu diwujudkan atau status objek yang digunakan untuk mewujudkan entri log harus diserialisasikan. Melakukannya menghindari potensi pengecualian dari objek yang dibuang.
Sumber untuk konten ini dapat ditemukan di GitHub, yang juga dapat Anda gunakan untuk membuat dan meninjau masalah dan menarik permintaan. Untuk informasi selengkapnya, lihat panduan kontributor kami.
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: