Frage

Wie kann ich log4j alte Dreh Log-Dateien löschen? Ich weiß, ich kann bis automatisierten Jobs (cron für UNIX und geplante Aufgabe für Windows) gesetzt, aber ich will es Cross-Plattform, und ich möchte es in unserer Anwendung Protokollkonfiguration als Teil unserer Anwendung, anstatt in getrennten Code außerhalb in OS spezifische Skriptsprachen. Unsere Anwendung ist in OS Skriptsprachen nicht geschrieben, und ich will nicht, diesen Teil davon in ihnen tun.

War es hilfreich?

Lösung

RollingFileAppender tut dies. Sie müssen nur MaxBackupIndex auf den höchsten Wert für die Sicherungsdatei setzen.

Andere Tipps

Protokolle drehen für einen Grund, so dass Sie nur um so viele Protokolldateien halten. In log4j.xml können Sie diese zu Ihrem Knoten hinzufügen:

<param name="MaxBackupIndex" value="20"/>

Der Wert sagt log4j.xml nur 20 hält gedreht Log-Dateien um. Sie können dies auf 5 begrenzen, wenn Sie wollen, oder sogar 1. Wenn Ihre Anwendung nicht, dass viele Daten protokolliert, und Sie haben 20 Protokolldateien Spanning den letzten 8 Monaten, aber Sie müssen nur Wochen im Wert von Protokollen, dann denke ich, Sie müssen zwicken Ihre log4j.xml "MaxBackupIndex" und "MaxFileSize" params.

Alternativ, wenn Sie verwenden eine Eigenschaft (anstelle der xml-Datei) und wünschen 15 Dateien speichern (zum Beispiel)

log4j.appender.[appenderName].MaxBackupIndex = 15

Es gibt keinen Standardwert steuern alte Protokolldateien von DailyRollingFileAppender erstellt löschen. Aber Sie können Ihre eigenen Appender schreiben, die alte Protokolldateien in der gleichen Weise löscht wie Einstellung MaxBackupIndex tut für RollingFileAppender.

Einfache Anleitungen gefunden hier

1 :

Wenn Sie versuchen, den Apache Log4J DailyRollingFileAppender für eine tägliche Protokolldatei zu verwenden, können Sie wollen, müssen Sie die maximale Anzahl von Dateien angeben, die gehalten werden sollen. Genau wie RollingFileAppender rollen unterstützt MaxBackupIndex. Aber die aktuelle Version von Log4j (Apache log4j 1.2.16) bietet keinen Mechanismus alte Protokolldateien zu löschen, wenn Sie DailyRollingFileAppender verwenden. Ich habe versucht, kleine Änderungen in der ursprünglichen Version von DailyRollingFileAppender zu machen MaxBackupIndex Eigenschaft hinzuzufügen. So wäre es möglich, alte Protokolldateien zu bereinigen, die möglicherweise nicht für die künftige Nutzung erforderlich.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top