4 Stimmen

Logdateienrotation mit .NET-Listenern

Ich habe einen bestehenden .net-Dienst und möchte ihn so konfigurieren, dass er Nachrichten in eine Protokolldatei schreibt. Ich habe folgendes in der Dienstkonfiguration hinzugefügt:

Das Problem ist, dass die Protokolldatei schnell sehr groß wird, daher frage ich mich, ob es möglich ist, eine Art Protokollrotation zu konfigurieren.
Da der Prozess die Datei zum Schreiben blockiert, ist es nicht möglich, sie manuell zu rotieren, z.B. mit einem Skript, das die Datei regelmäßig umbenennt, zumindest ohne den Dienst anzuhalten und neu zu starten.

Vielen Dank für jeden Vorschlag.

9voto

jmservera Punkte 6254

Es gibt den FileLogTraceListener, der meiner Meinung nach seinen Zweck erfüllen würde. Du kannst ihn auf ein tägliches oder wöchentliches Intervall konfigurieren.

Wenn das nicht ausreicht, dann musst du deinen eigenen Tracelistener schreiben, indem du einfach von TraceListener erbst und die Schreibmethoden überschreibst.

0voto

Richard Punkte 142

Könnten Sie die Protokollrotation in den Dateinamen integrieren, so dass:

"c:\log.txt"

zu:

"c:\logDDMMYYYY.txt"

werden.

Auf diese Weise wird das Protokoll automatisch am Ende des Tages in eine neue Datei übertragen.

0voto

Scoregraphic Punkte 6942

Vielleicht könnten Sie sich log4net ansehen, eine kostenlose und benutzerfreundliche Protokollierungsbibliothek für .NET. Diese Bibliothek enthält bereits eine Funktion für das Rotieren von Protokollen.

Andernfalls haben Sie möglicherweise Ihren Dienst, um die Datei zu "entsperren" und/oder automatisch in eine neue Datei zu protokollieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X