Microsoft.Extensions.Logging.EventSource Namespace
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.
Contém classes e abstrações para configurar o agente de origem do evento.
Classes
EventSourceLoggerProvider |
O provedor do Microsoft.Extensions.Logging.EventSource.EventSourceLogger. |
LoggingEventSource |
O LoggingEventSource é a ponte de todos os logs baseados em ILogger para o log EventSource/EventListener. Você ativa esse log habilitando o EventSource chamado
Quando você habilitou o EventSource, o EventLevel definido é traduzido da maneira óbvia para o nível associado ao ILogger (portanto, Depurar = detalhado, Informativo = Informativo ... Crítico == Crítico) 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 argumento FilterSpecs é uma lista separada de ponto-e-vírgula de especificações. Onde cada especificação está SPEC = // especificação vazia, igual a * | NOME // Apenas um nome que o nível é o nível padrão | NOME: 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 que acontecem por padrão, caso contrário. Em que Nome é o nome de um ILoggger (caso importa), o nome pode ter um * que atua como um caractere curinga AS A SUFFIX. Portanto, Net* corresponderá a todos os agentes que começam com o 'Net'. O LEVEL é um número ou uma cadeia de caracteres LogLevel. 0=Rastreamento, 1=Depuração, 2=Informações, 3=Aviso, 4=Erro, Crítico=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 para o EventSource. A primeira correspondência será usada se um nome específico corresponder a mais de um padrão. Além do argumento nível e FilterSpec, você também pode definir palavras-chave EventSource. Veja a definição de palavras-chave abaixo, mas basicamente você pode decidir se deseja ter
Espera-se que você ative apenas uma dessas palavras-chave de cada vez, mas poderá ativá-las todas (e obter os mesmos dados registrados de três maneiras diferentes. Uso de exemplo Este exemplo mostra como usar um EventListener para obter informações de ILogging classe MyEventListener: EventListener { protected override void OnEventSourceCreated(EventSource eventSource) { if (eventSource.Name == "Microsoft-Extensions-Logging") { // initialize uma cadeia de caracteres, dicionário de cadeia de caracteres de argumentos para passar para o EventSource. Ative os agentes correspondentes a App* à Informação, todo o resto () é o nível padrão (que é EventLevel.Error) var args = new Dictionary<string, string>() { { "FilterSpecs", "App:Information;*" } }; Defina o nível padrão (verbosidade) como Erro e peça apenas as mensagens formatadas nesse caso. 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 {0}: {1}", eventData.Payload[2], eventData.Payload[4]); } |
LoggingEventSource.Keywords |
Isso é público do ponto de vista do consumidor do EventSource, mas como essas definições não são necessárias fora dessa classe |