How to stop adding TextWriterTraceListener using app.config?

I use System.Diagnostics.TraceSource for logging, and one of my listeners is TextWriterTraceListener. In the tracing primer here, he sets this as follows:

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

The problem is that this will always be added to output.txt. How do you change this to overwrite in the configuration file?

Software listener I want:

new TextWriterTraceListener(new StreamWriter("output.txt", false));
+5
source share
3 answers

The easiest solution is to make your own.

I suggest that you inherit from TextWriterTraceListenerand in your constructor establish a baseline Writeron what you suggested: new StreamWriter("output.txt", false).

Code example:

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

initializeData , , .

+2

, , NLog. , , .

+1

Even easier, just ask TestWriterTraceListener not to add the file:

TextWriterTraceListener twtl = new TextWriterTraceListener(new StreamWriter(@"<path to my logfile>", false));

By choosing false, the log file is overwritten every time you initialize the TextWriterTraceListener.

0
source

All Articles