3

私は、ステートメントのみがファイルに書き込まれる という信念を持って、C#のトレースリスナーを使用してロガーを作成するという記事に従いました。Trace.WriteLine()application.log

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
    <trace autoflush="true" indentsize="4">
      <listeners>
        <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="application.log" />
        <remove name="Default" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

しかし、残念なことに、Debug.WriteLine()以前はタブに移動しOutputていたものがすべてそのタブから消え、代わりにすべてがトレースファイルに移動するようになりましたapplication.log

ステートメントのみ をそれに向ける方法はありますか?Trace.WriteLine()application.log

WriteLine()そうでない場合は、デバッグセッション全体ではなく、そのファイルにログを記録するために選択したものだけを自分のファイルに移動する最も簡単な方法は何ですか?

4

1 に答える 1

5

何を期待していたかはわかりません<remove name="Default" />が、構成からその行を削除すると、[出力]タブの出力に戻ります。DefaultTraceListenerがOutputDebugStringメソッドを使用して、VSが[出力]タブにログを表示できるようにしていることがわかります。

トレースはすべてのリスナーに送信され、リスナー自体がフィルタリングを実行できます。

トレースの分類をさらに実行したい場合は、System.Diagnostic名前空間の他のクラスを参照してください。TraceSourceのような名前空間とサンプルの方法-Trace Source

private static TraceSource mySource = new TraceSource("TraceSourceApp");
...
mySource.TraceEvent(TraceEventType.Error, 1, "Error message.");
于 2012-10-30T00:32:27.503 に答える