2010-08-20 6 views
8

Ich verwende C# System.Diagnostics.TextWriterTraceListener, um Ablaufverfolgung zu drucken. Aber die Trace-Datei wird zu groß (Hunderte von MB). Ich möchte das Verhalten von TextWriterTraceListener ändern, dass, wenn die Trace-Datei groß wird, Ausgabe in eine andere Datei schreibt. Zum Beispiel ist die ursprüngliche Trace-Datei 'output1.txt', wenn sie größer als 100MB wird, sollte TextWriterTraceListener in 'output2.txt' schreiben.TextWriterTraceListener-Trace-Datei zu groß

Haben Sie ähnliche Probleme festgestellt? Gibt es elegante Lösungen?

Antwort

5

Zwei Optionen, die ich denken kann:

  • Schreiben Sie Ihre eigene TextWriter Implementierung, die dies tut, und stellen Sie die TextWriterTraceListener.Writer Eigenschaft auf eine Instanz davon

      . Hier ist eine sample Implementierung, die dies tut, obwohl sie auf einer Zeitbasis (täglich) und nicht auf einer Dateigröße rollt.
    1. Wechseln Sie zu log4net und verwenden Sie eine RollingFileAppender.
  • +0

    +1 - log4net wird dieses Problem lösen und hat andere Merkmale bedingte Protokollierung – Tahbaza

    +0

    Musterseite in Antwort verknüpft bieten wie nicht mehr vorhanden ist, archivierter Link ist https://web.archive.org/web/20040628122447/ http://weblogs.asp.net/DaveBost/archive/2004/04/30/124224.aspx – tjleigh