views:

73

answers:

1

I am using C# System.Diagnostics.TextWriterTraceListener to print trace. But the trace file becomes too large (hundreds of MBs). I want to change the behavior of TextWriterTraceListener, that if the trace file becomes large, it writes output to another file. For example, the original trace file is 'output1.txt', if it becomes larger than 100MB, then TextWriterTraceListener should write to 'output2.txt'.

Have you encountereds similar problems? Are there any elegant solutions?

+2  A: 

Two options I can think of:

  1. Write your own TextWriter implementation that does this, and set the TextWriterTraceListener.Writer property to an instance of it. Here's a sample implementation that does this, although it rolls over on a time (daily) basis rather than on a file-size basis.
  2. Switch to log4net and use a RollingFileAppender.
Ani
+1 - log4net will solve this problem and has other features to offer like conditional logging
Tahbaza