LoggingEventSource Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Collega tutte le registrazioni basate su ILogger alla registrazione 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
- Ereditarietà
- Attributi
Esempio
Questo esempio mostra come usare un EventListener per ottenere informazioni 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]}");
}
}
Commenti
Per attivare questa registrazione, abilitare EventSource denominato Microsoft-Extensions-Logging. Quando si abilita EventSource, eventLevel impostato viene convertito nel livello associato a ILogger (quindi Debug = verbose,Informational = Informational , ). Critical == Critical In questo modo è possibile filtrare in base al livello di evento in modo semplice.
Per un controllo più fine, è possibile specificare un argomento EventSource denominato FilterSpecs. L'argomento FilterSpecs è un elenco di specifiche delimitato da punto e virgola. Dove ogni specifica è:
SPEC = // Specifica vuota, uguale a *.
| NAME // Specifica denominata. Usa il livello predefinito.
| NAME: LEVEL // Specifica il livello per un particolare logger (può avere un suffisso * ).
Quando si specifica "UseAppFilters" in FilterSpecs, evita la disabilitazione di tutte le categorie, che si verifica per impostazione predefinita.
Name è il nome di un ILogger (caso importante) e può terminare con *, che funge da carattere jolly. Ad esempio, Net* corrisponderà a tutti i logger che iniziano con "Net".
LEVEL è un numero o una LogLevel stringa (0=Trace, 1=Debug, 2=Information, 3=Warning, 4=Error, Critical=5). Specifica il livello per il modello associato. Se il numero non viene specificato (prima forma della specifica), si tratta del livello predefinito per EventSource.
La prima corrispondenza viene utilizzata se un nome specifico corrisponde a più di un modello.
Oltre al livello e FilterSpecs all'argomento, è anche possibile impostare parole chiave EventSource:
* Keywords.Message : l'evento contiene dati in formato analizzato.
* Keywords.JsonMessage: l'evento contiene dati in formato analizzato, ma come BLOB JSON (non suddiviso per argomento).
* Keywords.FormattedMessage : l'evento contiene dati formattati come stringa.
È previsto che solo una di queste parole chiave sia attivata alla volta, ma è possibile attivarle tutte e ottenere gli stessi dati registrati in tre modi diversi.