LoggingEventSource Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Az összes ILogger-alapú naplózást hidat képez az EventSource/EventListener naplózáshoz.
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
- Öröklődés
- Attribútumok
Példák
Ez a példa bemutatja, hogyan szerezhet be ILogging-információkat az EventListener használatával.
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]}");
}
}
Megjegyzések
A naplózás bekapcsolásához engedélyezze a Microsoft-Extensions-Logging nevű EventSource-t. Az EventSource engedélyezésekor a beállított EventLevel az ILoggerhez társított szintre lesz lefordítva (így Debug = verbose, ). Informational = InformationalCritical == Critical Ez lehetővé teszi az eseményszint szerinti szűrést egyszerű módon.
A finomabb vezérlés érdekében megadhat egy EventSource nevű FilterSpecsargumentumot. Az FilterSpecs argumentum a specifikációk pontosvesszővel tagolt listája. Ahol az egyes specifikációk a következőek:
SPEC = // Üres specifikáció, ugyanaz, mint *.
| NÉV // Elnevezett specifikáció. Az alapértelmezett szintet használja.
| NÉV : LEVEL // Egy adott naplózó szintjét adja meg (lehet * utótag).
Ha a "UseAppFilters" kifejezés meg van adva a FilterSpecsfájlban, akkor nem tiltja le az összes kategóriát, ami alapértelmezés szerint másként történik.
Name egy (az eset számít) neve ILogger , és *-val végződhet, amely helyettesítő karakterként működik. A "Net" kezdetű naplózók például Net* megegyeznek.
LEVEL szám vagy sztring LogLevel (0=Nyomkövetés, 1=Hibakeresés, 2=Információ, 3=Figyelmeztetés, 4=Hiba, Kritikus=5). Ez határozza meg a társított minta szintjét. Ha a szám nincs megadva (a specifikáció első formája), ez az EventSource alapértelmezett szintje.
Az első egyezés akkor használatos, ha egy adott név több mintával egyezik.
A szint és FilterSpecs az argumentum mellett EventSource-kulcsszavakat is beállíthat:
* Keywords.Message – Az esemény elemezett formában tartalmaz adatokat.
* Keywords.JsonMessage – Az esemény elemezett formában, de JSON-blobként (argumentum szerint nem bontva) tartalmaz adatokat.
* Keywords.FormattedMessage – Az esemény sztringként formázott adatokat tartalmaz.
Várhatóan egyszerre csak az egyik kulcsszó van bekapcsolva, de mindet bekapcsolhatja (és ugyanazokat az adatokat három különböző módon naplózhatja).