LoggingEventSource Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menjembatani semua pengelogan berbasis ILogger ke pengelogan EventSource/EventListener.
public ref class LoggingEventSource sealed : System::Diagnostics::Tracing::EventSource
[System.Diagnostics.Tracing.EventSource(Name="Microsoft-Extensions-Logging")]
public sealed class LoggingEventSource : System.Diagnostics.Tracing.EventSource
[<System.Diagnostics.Tracing.EventSource(Name="Microsoft-Extensions-Logging")>]
type LoggingEventSource = class
inherit EventSource
Public NotInheritable Class LoggingEventSource
Inherits EventSource
- Warisan
- Atribut
Contoh
Contoh ini menunjukkan cara menggunakan EventListener untuk mendapatkan informasi ILogging.
class MyEventListener : EventListener {
protected override void OnEventSourceCreated(EventSource eventSource) {
if (eventSource.Name == "Microsoft-Extensions-Logging") {
// Initialize a dictionary of arguments to pass to the EventSource.
// Turn on loggers matching App* to Information; everything else (*) is the default level (which is EventLevel.Error).
var args = new Dictionary<string, string>() { { "FilterSpecs", "App*:Information;*" } };
// Set the default level (verbosity) to Error, and only ask for the formatted messages in this case.
EnableEvents(eventSource, EventLevel.Error, LoggingEventSource.Keywords.FormattedMessage, args);
}
}
protected override void OnEventWritten(EventWrittenEventArgs eventData) {
// Look for the formatted message event, which has the following argument layout (as defined in the LoggingEventSource):
// FormattedMessage(LogLevel Level, int FactoryID, string LoggerName, string EventId, string FormattedMessage);
if (eventData.EventName == "FormattedMessage")
Console.WriteLine($"Logger {eventData.Payload[2]}: {eventData.Payload[4]}");
}
}
Keterangan
Untuk mengaktifkan pengelogan ini, Anda mengaktifkan EventSource yang disebut Microsoft-Extensions-Logging. Saat Anda mengaktifkan EventSource, EventLevel yang Anda tetapkan diterjemahkan ke tingkat yang terkait dengan ILogger (dengan demikian Debug = verbose,Informational = Informational , ). Critical == Critical Ini memungkinkan Anda untuk memfilter menurut tingkat peristiwa dengan cara yang mudah.
Untuk kontrol yang lebih baik, Anda dapat menentukan argumen EventSource yang disebut FilterSpecs. Argumen FilterSpecs adalah daftar spesifikasi yang dipisahkan titik koma. Di mana setiap spesifikasi adalah:
SPEC = // Spesifikasi kosong, sama dengan *.
| NAMA // Spesifikasi bernama. Menggunakan tingkat default.
| NAME : LEVEL // Menentukan tingkat untuk pencatat tertentu (dapat memiliki akhiran * ).
Ketika "UseAppFilters" ditentukan dalam FilterSpecs, itu menghindari menonaktifkan semua kategori, yang terjadi secara default sebaliknya.
Name adalah nama ILogger (kasus penting), dan dapat diakhir dengan *, yang bertindak sebagai kartubebas. Misalnya, Net* akan cocok dengan pencatat apa pun yang dimulai dengan 'Net'.
LEVEL adalah angka atau LogLevel string (0=Jejak, 1=Debug, 2=Informasi, 3=Peringatan, 4=Kesalahan, Kritis=5). Ini menentukan tingkat untuk pola terkait. Jika angka tidak ditentukan (bentuk pertama spesifikasi), angka tersebut adalah tingkat default untuk EventSource.
Kecocokan pertama digunakan jika nama tertentu cocok dengan lebih dari satu pola.
Selain tingkat dan FilterSpecs argumen, Anda juga dapat mengatur kata kunci EventSource:
* Kata Kunci.Pesan - Peristiwa berisi data dalam formulir yang diurai.
* Keywords.JsonMessage - Peristiwa berisi data dalam bentuk yang diurai tetapi sebagai blob JSON (tidak dipecah berdasarkan argumen).
* Kata Kunci.FormattedMessage - Peristiwa berisi data yang diformat sebagai string.
Diharapkan bahwa hanya salah satu kata kunci ini yang diaktifkan pada satu waktu, tetapi Anda dapat mengaktifkan semuanya (dan mendapatkan data yang sama yang dicatat tiga cara berbeda).