Ist es mit jedem der log4j-Appender möglich, die Protokolle mit einer bestimmten Rotationszeit und einem bestimmten Aufbewahrungslimit zu schreiben?
Das Ziel wäre:
- für jeden Tag eine Protokolldatei zu haben; Erstellen Sie um Mitternacht eine neue Datei für die neuen Protokolle
- die Protokolldateien zu behalten und sie nach einer bestimmten Zeit automatisch zu löschen; Löschen Sie daher Protokolldateien, die älter als X Tage sind (z. B. 30 Tage).
Es scheint, dass die Rotation möglich ist, aber die Begrenzung der Retentionszeit ist mit log4j nicht möglich
Die log4j-Version ist 1.2.
ja wir können!
Datei:
project->src->main->resources->logback.xml
Weitere Informationen finden Sie in der Dokumentation: TimeBasedRollingPolicy
JavaDoc: TimeBasedRollingPolicy
quelle
Die meisten Antworten basieren auf Logback. Aber die Frage ist über log4j 1.2 (alt ...)
Die Antwort mit DailyRollingFileAppender funktioniert ebenfalls nicht.
org.apache.log4j.DailyRollingFileAppender
unterstützt dieMaxBackupIndex
Eigenschaft nicht siehe http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/DailyRollingFileAppender.html (dies ist fürRollingFileAppender
)Sie könnten interessiert sein an: Verwenden Sie MaxBackupIndex in DailyRollingFileAppender -log4j
und für eine mögliche Antwort: Log4j Rollingpolicy und MaxbackupIndex
Aber Sie sollten wahrscheinlich die "Emulation" von slf4j log4j ( http://www.slf4j.org/legacy.html#log4j-over-slf4j ) verwenden und Ihr Protokoll durch Logback (ohne Codeänderung) weiterleiten, wo es viel einfacher zu implementieren ist .
quelle