私はETWを利用しています。 コンソールログを実行しています。 EventSourceをインスタンス化してイベントをログファイルに記録しようとすると、806/807の警告コードが表示され、ログが保持されません。 (これらの警告は、 'EventSource'属性を追加するかどうかによって生成されます。ETW:イベントソース名を設定するイベントID 806/807
ただし、デフォルトのコンストラクタを使用し、イベントソースの名前を渡さず、デフォルトの属性値を使用すると、
実装例警告:
理想的using Microsoft.Diagnostics.Tracing;
[EventSource(Name = "MyApi")]
public sealed class MyEventSource : EventSource
{
public MyEventSource(string name):base(name){
}
private static readonly Lazy<MyEventSource> _instance = new Lazy<MyEventSource>(() => new MyEventSource());
public static MyEventSource Log => _instance.Value;
...
}
を、私は属性として私のEventSource名をハードコーディングし、単に利用できるオーバーロードされたコンストラクタを使用して、コンストラクタに私の名前を渡すことを避けるために希望
。以前の投稿から有益な情報が見つかりましたが、残念ながら問題を解決できませんでした。Risk of missing events from ETW logging with EventSource
?この怠惰は必須ではなく、単純に** public static MyEventSource Log = new MyEventSource(); **を使用してください – magicandre1981