LoggingEventSource Osztály

Definíció

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
LoggingEventSource
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).

A következőre érvényes: