5

ロギングに System.Diagnostics.TraceSource を使用していますが、リスナーの 1 つは TextWriterTraceListener です。ここのトレーシング プライマーでは、これを次のように設定します。

<listeners>
  <add initializeData="output.txt" 
       type="System.Diagnostics.TextWriterTraceListener"
       name="myLocalListener" />
</listeners>

問題は、これが常に output.txt に追加されることです。これを構成ファイルの上書きに変更するにはどうすればよいですか?

プログラム的に私が望むリスナーは次のとおりです。

new TextWriterTraceListener(new StreamWriter("output.txt", false));
4

3 に答える 3

2

これがあなたの質問に直接答えないことはわかっていますが、代わりにNLogを使用してください。ロギング オプションに関しては、すぐに使用できる診断よりも多くの機能があり、非常に使いやすいです。

于 2012-02-07T05:30:19.493 に答える
2

最も簡単な解決策は、自分で作成することです。

から継承しTextWriterTraceListener、コンストラクターでベースWriterを提案したものに設定することをお勧めします: new StreamWriter("output.txt", false)

サンプルコード:

public class MyTextWriterTraceListener : TextWriterTraceListener
{
    public MyTextWriterTraceListener(string logFileName)
        : base(logFileName)
    {
        base.Writer = new StreamWriter(logFileName, false);
    }
}

これによりinitializeData、構成ファイルからパラメーターを取得して、ファイルの名前を指定したり、コードで作成された場合はファイルの名前を指定したりできます。

于 2014-03-06T20:18:36.257 に答える