LoggingEventSource Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overbrugt alle logboekregistratie op basis van ILogger naar EventSource/EventListener-logboekregistratie.
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
- Overname
- Kenmerken
Voorbeelden
In dit voorbeeld ziet u hoe u een EventListener gebruikt om ILogging-informatie op te halen.
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]}");
}
}
Opmerkingen
Als u deze logboekregistratie wilt inschakelen, schakelt u EventSource in met de naam Microsoft-Extensions-Logging. Wanneer u EventSource inschakelt, wordt het Ingestelde EventLevel omgezet in het niveau dat is gekoppeld aan de ILogger (dus DebugInformationalInformationalverbose = = , ). Critical == Critical Hierdoor kunt u op gebeurtenisniveau op eenvoudige manier filteren.
Voor een nauwkeurigere controle kunt u een EventSource-argument opgeven met de naam FilterSpecs. Het FilterSpecs argument is een door puntkomma's gescheiden lijst met specificaties. Waar elke specificatie is:
SPEC = // Lege specificatie, hetzelfde als *.
| NAME // Named spec. Maakt gebruik van het standaardniveau.
| NAME : LEVEL // Specificeert het niveau voor een bepaalde logger (kan een * achtervoegsel hebben).
Wanneer UseAppFilters is opgegeven in de FilterSpecs, wordt voorkomen dat alle categorieën worden uitgeschakeld, wat standaard gebeurt.
Name is de naam van een ILogger (zaak is van belang) en kan eindigen met *, die fungeert als een jokerteken. Komt bijvoorbeeld Net* overeen met alle logboekregistraties die beginnen met 'Net'.
LEVEL is een getal of een LogLevel tekenreeks (0=Trace, 1=Debug, 2=Information, 3=Warning, 4=Error, Critical=5). Hiermee geeft u het niveau voor het bijbehorende patroon op. Als het getal niet is opgegeven (eerste vorm van de specificatie), is dit het standaardniveau voor de EventSource.
De eerste overeenkomst wordt gebruikt als een bepaalde naam overeenkomt met meer dan één patroon.
Naast het niveau en FilterSpecs argument kunt u ook Trefwoorden voor EventSource instellen:
* Keywords.Message - Gebeurtenis bevat gegevens in geparseerde vorm.
* Keywords.JsonMessage - Gebeurtenis bevat gegevens in geparseerde vorm, maar als een JSON-blob (niet opgesplitst op argument).
* Keywords.FormattedMessage - Gebeurtenis bevat gegevens die zijn opgemaakt als een tekenreeks.
Er wordt verwacht dat slechts één van deze trefwoorden tegelijk is ingeschakeld, maar u kunt ze allemaal inschakelen (en dezelfde gegevens ophalen die op drie verschillende manieren zijn vastgelegd).