次の方法で共有


TraceProcessor の拡張

TraceProcessor には多くの種類のトレース データが組み込まれていますが、分析する他のプロバイダー (独自のカスタム プロバイダーを含む) がある場合、そのデータは処理の実行中もトレースライブから利用できます。

API のこの部分はプレビュー段階であり、開発中です。 将来のリリースで変更される可能性があります。

たとえば、トレース内のプロバイダー ID の一覧を取得する簡単な方法を次に示します。

// 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);
    }
}

次の例は、簡略化されたカスタム データ ソースを示しています。

// 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;
    }
}

次のステップ

このチュートリアルでは、TraceProcessor を拡張する方法について説明しました。

次の手順では、トレースに シンボルを読み込む 方法について説明します。