Étendre TraceProcessor
De nombreux types de données de trace font l’objet d’une prise en charge intégrée dans TraceProcessor, mais si vous voulez analyser d’autres fournisseurs (notamment vos propres fournisseurs personnalisés), ces données sont également disponibles à partir de la trace en direct pendant que le traitement se produit.
Notes
Cette partie de l’API est en préversion et fait l’objet de développements actifs. Elle est susceptible de changer dans les versions à venir.
Par exemple, voici un moyen simple d’obtenir la liste des ID des fournisseurs dans une trace.
// Open a trace with TraceProcessor.Create() and call Run...
static void Run(ITraceProcessor trace)
{
HashSet<Guid> providerIds = new HashSet<Guid>();
trace.Use((e) => providerIds.Add(e.ProviderId));
trace.Process();
foreach (Guid providerId in providerIds)
{
Console.WriteLine(providerId);
}
}
L’exemple suivant montre une source de données personnalisée simplifiée.
// Open a trace with TraceProcessor.Create() and call Run...
static void Run(ITraceProcessor trace)
{
CustomDataSource customDataSource = new CustomDataSource();
trace.Use(customDataSource);
trace.Process();
Console.WriteLine(customDataSource.Count);
}
class CustomDataSource : IFilteredEventConsumer
{
public IReadOnlyList<Guid> ProviderIds { get; } = new Guid[] { new Guid("your provider ID") };
public int Count { get; private set; }
public void Process(EventContext eventContext)
{
++Count;
}
}
Étapes suivantes
Dans ce tutoriel, vous avez vu comment étendre TraceProcessor.
L’étape suivante est d’apprendre comment charger des symboles pour les traces.
Windows developer