Wie man Logs mit Winston täglich rotiert, außer am ersten Tag

8

Ich muss die Protokolle täglich rotieren, außer die Datei für den aktuellen Tag. Ich verwende winston und winston-daily-rotate-file Bibliotheken.

Im folgenden Beispiel wird eine Datei "info.log.2016-08-09" nur beim ersten Ausführen des Knotens generiert.

Aber ich muss wirklich die Datei "info.log" generieren, und nach diesem Tag sollte in "info.log.2016-08-09" umbenannt werden, und ein neues "info.log" für den erstellen heutige Tag. Ich verstehe, dass dies das normale Verhalten in anderen Anwendungen ist.

%Vor%
    
larrytron 09.08.2016, 14:10
quelle

1 Antwort

2

Nun, eine Möglichkeit besteht darin, einen weiteren Transport zu info.log

zu haben

Einfach so:

%Vor%

Und dann ein Cron einrichten, um info.log um Mitternacht zu löschen, zB node-schedule

Bei diesem Ansatz kann es jedoch wenig Inkonsistenz geben, wenn etwas über Mitternacht läuft, kann es wenige Zeilen in das info.log schreiben, das am nächsten Tag gehört und dann gelöscht wird, daher kann info.log nicht abgeschlossen werden.

Aber alle Protokolle mit diesem info.log.2016-08-09 -Format bleiben voll und unberührt.

Es ist also zu überlegen, ob eine sehr geringe Chance, unvollständige info.log für einen Tag zu haben, akzeptabel ist. (Sie können jedoch auch erweiterte Checker erstellen, die nicht nur Dateien löschen, sondern auch nach neuen Dateien suchen. Wenn ja, sieht es nach dem Inhalt aus und löscht nur die Logs früherer Tage aus info.log und löscht sie nicht alles auf einmal)

    
libik 22.08.2016 10:58
quelle

Tags und Links