2010-08-20 8 views
8

Я использую C# System.Diagnostics.TextWriterTraceListener для печати трассировки. Но трассировочный файл становится слишком большим (сотни МБ). Я хочу изменить поведение TextWriterTraceListener, что если файл трассировки становится большим, он записывает вывод в другой файл. Например, исходный файл трассировки является «output1.txt», если он становится больше 100 МБ, тогда TextWriterTraceListener должен писать в 'output2.txt'.TextWriterTraceListener файл трассировки слишком большой

У вас возникли аналогичные проблемы? Есть ли элегантные решения?

ответ

5

Два варианта я могу думать:

  1. Оставить свою TextWriter реализацию, которая делает это, и установить TextWriterTraceListener.Writer свойства к экземпляру этого. Вот реализация sample, которая делает это, хотя она катится по времени (ежедневно), а не по размеру файла.
  2. Переключить на: log4net и использовать RollingFileAppender.
+0

+1 - log4net решит эту проблему и имеет другие возможности, чтобы предложить как условное каротаж – Tahbaza

+0

Образец страницы, связанной в ответ больше не существует, архивируются ссылка https://web.archive.org/web/20040628122447/ http://weblogs.asp.net/DaveBost/archive/2004/04/30/124224.aspx – tjleigh