2010-08-20 11 views
8

Używam C# System.Diagnostics.TextWriterTraceListener do drukowania śladu. Ale plik śledzenia staje się zbyt duży (setki MB). Chcę zmienić zachowanie TextWriterTraceListener, że jeśli plik śledzenia stanie się duży, zapisuje dane wyjściowe do innego pliku. Na przykład oryginalny plik śledzenia to "output1.txt", jeśli rozmiar ten przekracza 100 MB, wówczas TextWriterTraceListener powinien zapisać w "output2.txt".Plik śledzenia TextWriterTraceListener za duży

Czy napotkali Państwo podobne problemy? Czy są jakieś eleganckie rozwiązania?

Odpowiedz

5

dwie opcje można myślę:

  1. Napisz TextWriter realizację że to robi, i ustawić właściwość TextWriterTraceListener.Writer do instancji niego. Oto implementacja sample, która to robi, mimo że przewija się na podstawie czasu (codziennie), a nie na podstawie rozmiaru pliku.
  2. Przełącz na log4net i użyj RollingFileAppender.
+0

+1 - log4net rozwiąże ten problem i ma inne możliwości, aby zaoferować jak warunkowego rejestrowanie – Tahbaza

+0

stronie próbki połączonej w odpowiedzi już nie istnieje, archiwizowane link jest https://web.archive.org/web/20040628122447/ http://weblogs.asp.net/DaveBost/archive/2004/04/30/124224.aspx – tjleigh