Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im folgenden Abschnitt werden die grundlegenden Schritte beschrieben, die zum Hinzufügen von TraceLogging zu .NET-Code erforderlich sind.
Voraussetzungen
- .NET 4.6 oder höher.
SimpleTraceLoggingExample.cs
In diesem Beispiel wird veranschaulicht, wie TraceLogging-Ereignisse protokolliert werden, ohne dass eine separate XML-Manifestdatei für die Instrumentierung erstellt werden muss.
using System;
using System.Diagnostics.Tracing;
namespace SimpleTraceLoggingExample
{
class Program
{
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
static void Main(string[] args)
{
log.Write("Event 1"); // write an event with no fields
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
}
}
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
}
Erstellen der EventSource
Bevor Sie Ereignisse protokollieren können, müssen Sie eine Instanz der EventSource-Klasse erstellen. Der erste Konstruktorparameter identifiziert den Namen dieses Anbieters. Der Anbieter wird automatisch für Sie registriert, wie im Beispiel dargestellt.
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
Die Instanz ist statisch, da jeweils nur eine Instanz eines bestimmten Anbieters in Ihrer Anwendung vorhanden sein sollte.
Protokollprotokollierungsereignisse
Nachdem der Anbieter erstellt wurde, protokolliert der folgende Code aus dem obigen Beispiel ein einfaches Ereignis.
log.Write("Event 1"); // write an event with no fields
Protokollieren von strukturierten Ereignisnutzlastdaten
Sie können strukturierte Nutzlastdaten definieren, die mit dem Ereignis protokolliert werden. Stellen Sie strukturierte Nutzlastdaten entweder als anonymen Typ oder als Instanz einer Klasse bereit, die mit dem attribut [EventData]
kommentiert wurde, wie im folgenden Beispiel gezeigt.
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
Sie müssen das attribut [EventData]
zu Ereignisnutzlastklassen hinzufügen, die Sie wie unten dargestellt definieren.
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
Das Attribut ersetzt die Notwendigkeit, eine Manifestdatei manuell zu erstellen, um die Ereignisdaten zu beschreiben. Jetzt müssen Sie nur noch eine Instanz der Klasse an die EventSource.Write()-Methode übergeben, um das Ereignis und die entsprechenden Nutzlastdaten zu protokollieren.
Zusammenfassung und nächste Schritte
Informationen zum Erfassen und Anzeigen von TraceLogging-Ereignissen finden Sie unter zum Erfassen und Anzeigen von TraceLogging-Daten mithilfe der neuesten internen Versionen der Windows Performance Tools (WPT).
Weitere Verwaltete TraceLogging-Beispiele finden Sie unter .NET TraceLogging Examples.