Ich benutze log4j 1.2.15 und ich frage mich, ob jemand eine Lösung für die lästige Dateiumbenennungsstrategie hat, die log4j benutzt.
Ich werde versuchen zu erklären: Ich verwende den folgenden RollingFileAppender, der 11 Protokolldateien mit jeweils 3 KB Größe erstellt.
log4j.appender.logfile = org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File = server.log
log4j.appender.logfile.MaxFileSize = 3 KB
log4j.appender.logfile.MaxBackupIndex = 10
Das Problem ist, dass log4j beim Erstellen einer neuen Protokolldatei server.log.1 , server.log.2 etc ...
erstelltKann ich log4j so konfigurieren, dass das Suffix ".log" beibehalten wird, und für server.1.log erstellen?
Vielen Dank im Voraus Guy
Ich mache das mit einer XML-Konfiguration (möglicherweise ohne) und mit Apache Extras Companion ™ für Apache log4j ™ (eine zusätzliche Bibliothek für log4j). Ich denke nicht, dass dies ohne die Extras funktioniert, aber es könnte sein.
Der Schlüssel ist die Verwendung von FileNamePattern
.
Ich benutze eine stündliche Iteration, die von Geoff Mottrams Dated File Appender wie folgt abgeleitet wurde, die Sie als Beispiel verwenden können eine Benennungsstrategie ableiten; Überprüfen Sie die Quelle von FileAppender und schauen Sie in der append-Methode nach, wo die Dateigröße überprüft wird, und überschreiben Sie dann FileAppender mit Ihrer eigenen Klasse, die die Umbenennung richtig handhabt:
%Vor%Hier ist mein Appender-XML-Snippet für Tomcat (bezieht sich nicht auf Stunden, aber Sie können es aus meinem Code herausfinden):
%Vor%