.net 4.5 で ETW を使用しようとしています。
WCF サービスとコンソール アプリがあり、EventSource を使用してメッセージを書き込む必要がありますが、ファイル (ローリング ファイル) にログを記録するための独自の ETW (EventSource と EventListener) を作成する方法を理解するのに苦労しています。
助言がありますか?
.net 4.5 で ETW を使用しようとしています。
WCF サービスとコンソール アプリがあり、EventSource を使用してメッセージを書き込む必要がありますが、ファイル (ローリング ファイル) にログを記録するための独自の ETW (EventSource と EventListener) を作成する方法を理解するのに苦労しています。
助言がありますか?
magicandre1981 の回答に加えて、次を追加する必要があります。
TraceEventSession _session = new TraceEventSession(
"yourSessionName", @"C:\yourLogFile.etl")
{
CircularBufferMB = 100 //100mb rolling log file
};
_session.EnableProvider(TraceEventProviders.GetEventSourceGuidFromName(
"Samples-EventSourceDemos-EventLog"), TraceEventLevel.Always);
これは、ログを記録しているのと同じアプリケーション (イン プロセス) または完全に別のアプリケーション (アウト プロセス) にある可能性があります。
Microsoft EventSource ライブラリの Nuget パッケージをインストールする
Install-Package Microsoft.Diagnostics.Tracing.EventSource -Pre
EventSource から派生したクラスでイベントを定義します。
ここで、Semantic Logging Application Blockを使用してEnterprise Library
イベントを消費します。
使用方法のビデオは次のとおりです。
セマンティック ロギングの紹介