Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La section suivante décrit les étapes de base requises pour ajouter TraceLogging au code .NET.
Conditions préalables
- .NET 4.6 ou version ultérieure.
SimpleTraceLoggingExample.cs
Cet exemple montre comment consigner les événements TraceLogging sans avoir à créer manuellement un fichier XML de manifeste d’instrumentation distinct.
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; }
}
}
Créer l’EventSource
Avant de pouvoir consigner les événements, vous devez créer une instance de la classe EventSource. Le premier paramètre de constructeur identifie le nom de ce fournisseur. Le fournisseur est automatiquement inscrit pour vous, comme illustré dans l’exemple.
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
L’instance est statique, car il ne doit y avoir qu’une seule instance d’un fournisseur spécifique dans votre application à la fois.
Journaliser les événements TraceLogging
Une fois le fournisseur créé, le code suivant de l’exemple ci-dessus enregistre un événement simple.
log.Write("Event 1"); // write an event with no fields
Journaliser les données de charge utile des événements structurés
Vous pouvez définir des données de charge utile structurées journalisées avec l’événement. Fournissez des données de charge utile structurées en tant que type anonyme ou en tant qu’instance d’une classe annotée avec l’attribut [EventData], comme indiqué dans l’exemple suivant.
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
Vous devez ajouter l’attribut [EventData] aux classes de charge utile d’événement que vous définissez comme indiqué ci-dessous.
[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; }
}
L’attribut remplace la nécessité de créer manuellement un fichier manifeste pour décrire les données d’événement. Vous devez maintenant passer une instance de la classe à la méthode EventSource.Write() pour consigner l’événement et les données de charge utile correspondantes.
Résumé et étapes suivantes
Consultez Record and Display TraceLogging Events pour plus d’informations sur la capture et l’affichage des données TraceLogging à l’aide des dernières versions internes de WINDOWS Performance Tools (WPT).
Consultez exemples traceLogging .NET pour obtenir des exemples traceLogging managés.