ASP.NET WebApi アプリケーションで EventSource (WebApiEventSource) を作成しました (ITraceWriter 実装として):
[EventSource(Name = "WebApi")]
public class WebApiEventSource : EventSource
{
public static readonly WebApiEventSource Log = new WebApiEventSource();
[Event(1)]
public void Event(string url, string message)
{
WriteEvent(1, url, message);
}
}
EventSource のメソッドが実行時にエラーなしで呼び出されることを確認しました。
次に、PerfView を実行し、そのログで、プロバイダー (EventSource) を確認できることを確認しました。
解析仕様 *WebApi 有効化プロバイダー:*WebApi レベル:クリティカル キーワード:0x0 オプション:なし 値: Guid:fc7bbb67-1b01-557b-5e0e-c1c4e40b6a24
次に、フィルター「*WebApi」を使用して「collect」を実行し、アプリで何らかのアクションを実行して停止します。
しかし、etl ファイルには私のプロバイダーからのイベントはありません! セクション「イベント」には、プロバイダーの名前すら含まれていません。
私は何を取りこぼしたか?
更新: 理由が見つかりました。以下の回答を参照してください。