Ich möchte tägliche Protokolle, wobei die Protokolldatei mit dem Datum im Format JJJJ-TT-MM angehängt wird. Wenn ich DailyRollingFileAppender verwende, wird keine neue Protokolldatei erstellt. Die Protokolle werden in dieselbe Protokolldatei geschrieben. Das angegebene Datumsmuster wird ebenfalls nicht berücksichtigt. Die erstellte Protokolldatei ist LoggerFile.log. Jeder Inhalt (auch am nächsten Tag) wird in diese Datei geschrieben.
Ich verwende das log4j-1.2.17-Glas. Ich entwickle in Netbeans 7.3.1 in Java.
Gibt es jemanden, der diesen JAR verwendet und ein solches Problem hat? Bitte helfen
Hier ist der Inhalt der von mir verwendeten Eigenschaftendatei:
# Root logger option
log4j.rootLogger=ERROR,FILE,stdout
# Define the file appender
log4j.appender.FILE=org.Apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=.//..//logs//LoggerFile.log
# Define the layout for file appender
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.layout=org.Apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS zzz} %5p %c{1}:%L - %m%n
log4j.appender.FILE.MaxFileSize=10MB
# Direct log messages to stdout
log4j.appender.stdout=org.Apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.Apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n`
Ich hatte ähnliche Anforderungen an die tägliche Rotation der Protokolldateien. (Obwohl die Frage älter ist, dachte ich, die Antwort würde anderen helfen).
Schlüsselpunkte:
Zuerst können wir DailyRollingFileAppender vermeiden. Warum? Es wurde beobachtet, dass DailyRollingFileAppender Synchronisierungsprobleme und Datenverlust aufweist. Der Zusatz zu log4j Extras enthält Alternativen, die für neue Bereitstellungen in Betracht gezogen werden sollten und die in der Dokumentation zu org.Apache.log4j.rolling.RollingFileAppender beschrieben werden. Referenz: Dokumentation des täglichen Rolling File Appenders
Apache extras log4j, würde vorschlagen, org.Apache.log4j.rolling.RollingFileAppender mit der Zeitbasierten Rolling-Richtlinie zu verwenden
Kann eine sample configuration für die zeitabhängige Rotation des Protokolls finden.
Hoffe das hilft.
Zunächst einmal haben Sie einen Fehler, da die DailyRollingFileAppender
die Eigenschaft MaxFileSize
nicht unterstützt.
Dann können Sie versuchen, das Zeichen '
aus der DatePattern
zu entfernen:
Versuchen Sie es zu ändern
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
zu
log4j.appender.FILE.DatePattern=.yyyy-MM-dd