組み込みのTraceSourceクラスとTraceListenerクラスを使い始めましたが、TraceSourcesとTraceListenersとは関係なく、イベントの出力形式を変更したいと思います。TraceListenersは独自のフォーマットを適用しているようです。使用するTraceListenerごとに新しいクラスを作成せずに、フォーマットを完全に変更することは可能ですか?
4 に答える
Enterprise Library Logging Application Block(http://msdn.microsoft.com/en-us/library/cc309506.aspx)は、.Net TraceSourceクラスとTraceListenerクラスに基づいて構築されています(したがって、プロジェクトにドロップするだけで、動作します)、web.config(またはapp.config)で構成できるメッセージフォーマッターをサポートします。
これはかなり遅いですが、log4net、NLog、およびLABで利用可能なものと同様のフォーマットをサポートするTraceSource / TraceListenerソリューションを探している可能性のある後発者の場合は、Ukadc.Diagnosticsを試してみてください。Ukadcが提供するTraceListenersをフォーマット文字列で構成できます。これは、トレースがリスナーに書き込まれるときに適用されます。独自のトークンを記述して、フォーマットステートメントに追加することもできます。たとえば、値が取得されるたびにカウンターをインクリメントするだけの楽しみのために作成しました。その結果、ログファイルでは、各行が順番に増加する番号を受け取ります。Trace.CorrelationManager.LogicalOperationStackからの情報を出力に追加できるようにする別のものを作成しました。
現在、その機能を備えたコンピューターに簡単にアクセスすることはできません。または、これらの例を投稿します。
直接Write()
またはWriteLine()
メソッドを使用して、直接Trace
テキストを TraceListener に入れることができます。