LoggingEventSource Classe

Définition

Relie toutes les journaux basés sur ILogger à la journalisation 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
Héritage
LoggingEventSource
Attributs

Exemples

Cet exemple montre comment utiliser un EventListener pour obtenir des informations 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]}");
    }
}

Remarques

Pour activer cette journalisation, vous activez EventSource appelé Microsoft-Extensions-Logging. Lorsque vous activez EventSource, l’EventLevel que vous définissez est traduit au niveau associé à ILogger (par conséquentDebugverbose = , ,Informational ).Critical == CriticalInformational = Cela vous permet de filtrer par niveau d’événement de manière simple.

Pour un contrôle plus fin, vous pouvez spécifier un argument EventSource appelé FilterSpecs. L’argument FilterSpecs est une liste de spécifications séparées par des points-virgules. Où chaque spécification est :

SPEC = // Spécification vide, identique à *.

| NAME // Spécification nommée. Utilise le niveau par défaut.

| NAME : LEVEL // Spécifie le niveau d’un enregistreur d’événements particulier (peut avoir un suffixe *).

Lorsque « UseAppFilters » est spécifié dans le FilterSpecs, il évite de désactiver toutes les catégories, ce qui se produit par défaut.

Name est le nom d’une ILogger (affaire) et peut se terminer par *, qui agit comme un caractère générique. Par exemple, Net* correspond à tous les enregistreurs d’événements qui commencent par « Net ».

LEVEL est un nombre ou une LogLevel chaîne (0=Trace, 1=Debug, 2=Information, 3=Avertissement, 4=Error, Critical=5). Cela spécifie le niveau du modèle associé. Si le nombre n’est pas spécifié (première forme de la spécification), il s’agit du niveau par défaut pour EventSource.

La première correspondance est utilisée si un nom particulier correspond à plusieurs modèles.

Outre le niveau et FilterSpecs l’argument, vous pouvez également définir des mots clés EventSource :

* Keywords.Message - L’événement contient des données sous forme analysée.

* Keywords.JsonMessage - L’événement contient des données sous forme analysée, mais en tant qu’objet blob JSON (pas divisé par argument).

* Keywords.FormattedMessage - L’événement contient des données mises en forme sous forme de chaîne.

On s’attend à ce qu’un seul de ces mots clés soit activé à la fois, mais vous pouvez tous les activer (et obtenir les mêmes données journalisées de trois façons différentes).

S’applique à