LoggingEventSource Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Conecta todo o log baseado em ILogger ao registro em log 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
- Atributos
Exemplos
Este exemplo mostra como usar um EventListener para obter informações 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]}");
}
}
Comentários
Para ativar esse logon, habilite o EventSource chamado Microsoft-Extensions-Logging. Quando você habilita o EventSource, o EventLevel definido é convertido no nível associado ao ILogger (portantoDebug = verbose, ,Informational = Informational , ). Critical == Critical Isso permite filtrar por nível de evento de maneira simples.
Para um controle mais fino, você pode especificar um argumento EventSource chamado FilterSpecs. O FilterSpecs argumento é uma lista separada por ponto-e-vírgula de especificações. Onde está cada especificação:
SPEC = // Especificação vazia, igual a *.
| NOME // Especificação nomeada. Usa o nível padrão.
| NAME: LEVEL // Especifica o nível de um agente específico (pode ter um sufixo * ).
Quando "UseAppFilters" é especificado no FilterSpecs, ele evita desabilitar todas as categorias, o que acontece por padrão, caso contrário.
Name é o nome de um ILogger (caso importa) e pode terminar com *, que atua como um curinga. Por exemplo, Net* corresponderá a todos os agentes que começam com 'Net'.
LEVEL é um número ou uma LogLevel cadeia de caracteres (0=Trace, 1=Debug, 2=Information, 3=Warning, 4=Error, Critical=5). Isso especifica o nível do padrão associado. Se o número não for especificado (primeira forma da especificação), ele será o nível padrão do EventSource.
A primeira correspondência será usada se um nome específico corresponder a mais de um padrão.
Além do nível e FilterSpecs do argumento, você também pode definir palavras-chave EventSource:
* Keywords.Message - O evento contém dados no formulário analisado.
* Keywords.JsonMessage - O evento contém dados em forma analisada, mas como um blob JSON (não dividido por argumento).
* Keywords.FormattedMessage – o evento contém dados formatados como uma cadeia de caracteres.
Espera-se que apenas uma dessas palavras-chave esteja ativada por vez, mas você pode ativá-las todas (e obter os mesmos dados registrados de três maneiras diferentes).