LoggingEventSource Classe

Definição

Faz a ponte de todo o registo baseado em ILogger para o registo do 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
Herança
LoggingEventSource
Atributos

Exemplos

Este exemplo mostra como usar um EventListener para obter informação de 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]}");
    }
}

Observações

Para ativar este loging, ativa o EventSource chamado Microsoft-Extensions-Logging. Quando ativas o EventSource, o EventLevel que defines é traduzido para o nível associado ao ILogger (ou sejaDebug = verbose, , ). Informational = InformationalCritical == Critical Isto permite-te filtrar por nível de evento de forma direta.

Para um controlo mais fino, pode especificar um argumento EventSource chamado FilterSpecs. O FilterSpecs argumento é uma lista de especificações separada por ponto e vírgula. Onde cada especificação é:

SPEC = // Especificação vazia, igual a *.

| NOME // Especificação nomeada. Usa o nível padrão.

| NOME : LEVEL // Especifica o nível para um determinado logger (pode ter um sufixo *).

Quando "UseAppFilters" é especificado no FilterSpecs, evita desativar todas as categorias, o que acontece por defeito.

Name é o nome de um ILogger (caso importa), e pode terminar por *, que atua como um coringa. Por exemplo, Net* irá corresponder a quaisquer loggers que comecem por 'Net'.

LEVEL é um número ou uma LogLevel cadeia (0=Rastreio, 1=Depuração, 2=Informação, 3=Aviso, 4=Erro, Crítico=5). Isto especifica o nível para o padrão associado. Se o número não for especificado (primeira forma da especificação), é o nível padrão para o EventSource.

A primeira correspondência é usada se um nome específico corresponder a mais do que um padrão.

Para além do nível e FilterSpecs do argumento, pode também definir palavras-chave EventSource:

* Palavras-chave.Mensagem - O evento contém dados em forma de análise analisada.

* Keywords.JsonMessage - O evento contém dados em forma de análise analisada, mas como um blob JSON (não dividido por argumento).

* Palavras-chave.FormattedMessage - O evento contém dados formatados como uma cadeia de caracteres.

Espera-se que apenas uma destas palavras-chave esteja ativada de cada vez, mas pode ativar todas (e registar os mesmos dados de três formas diferentes).

Aplica-se a