122

作成中の C# アプリケーションにトレースを導入したいと考えています。悲しいことに、私はそれがどのように機能するかを本当に思い出せません. 以下を含める必要があります。

  • TraceListeners を登録するために追加する App.config / Web.config のもの
  • 呼び出し元のアプリケーションで設定する方法

リンク先の über チュートリアルをご存知ですか?


Glenn Slaven は正しい方向を示してくれました。これを App.config/Web.config 内部に追加します<configuration/>

<system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter"
             initializeData="trace.log" />
      </listeners>
    </trace>
</system.diagnostics>

これにより、 などTextWriterTraceListenerで送信するすべてのものをキャッチするが追加されます。Trace.WriteLine

@DanEsparza は、 と同じようにメッセージをフォーマットできるため、の代わりにTrace.TraceInformation,Trace.TraceWarningを使用する必要があることを指摘しました。Trace.TraceErrorTrace.WriteLinestring.Format

ヒント:リスナーを追加しない場合でも、Sysinternals プログラムのDebugView ( Dbgview.exe)でトレース出力を確認できます。

4

2 に答える 2

5

以前の回答のすべてのブログ投稿と同様に、約 5 つの異なる回答をたどりましたが、まだ問題がありました。オブジェクトが文字列で初期化されて「名前付きソース」になるTraceSource.TraceEvent(TraceEventType, Int32, String)メソッドを使用してトレースしている既存のコードにリスナーを追加しようとしていました。TraceSource

私にとっての問題は、このソースをターゲットとするソースとスイッチ要素の有効な組み合わせを作成していませんでした。というファイルにログを記録する例を次に示しますtracelog.txt。次のコードの場合:

TraceSource source = new TraceSource("sourceName");
source.TraceEvent(TraceEventType.Verbose, 1, "Trace message");

次の診断構成でログに記録することに成功しました。

<system.diagnostics>
    <sources>
        <source name="sourceName" switchName="switchName">
            <listeners>
                <add
                    name="textWriterTraceListener"
                    type="System.Diagnostics.TextWriterTraceListener"
                    initializeData="tracelog.txt" />
            </listeners>
        </source>
    </sources>

    <switches>
        <add name="switchName" value="Verbose" />
    </switches>
</system.diagnostics>
于 2016-01-27T10:36:57.383 に答える
3

DotNetCodersには、スターター記事があります:http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx? article=50 。彼らは設定ファイルでスイッチを設定する方法とコードを書く方法について話しますが、それはかなり古いです(2002)。

CodeProjectに関する別の記事があります:例外処理を含む、デバッグクラスとトレースクラスの使用に関する論文ですが、同じ時代です。

CodeGuruには、カスタムTraceListenerに関する別の記事があります。カスタムTraceListenerの実装

于 2008-08-26T09:53:13.093 に答える