Wie control-Protokoll-Datei mit täglich Rollen und die max Datei Größe von log4j?
Ich würde gerne um die Protokolldatei zu erstellen, die gerollt werden kann, an den Anfang des nächsten Tages, oder wenn es erreicht, um die angegebene Datei-Größe und die log-Datei muss enthalten Datum-Ordner.
Format der Ordner ist YYYYMMDD
(/20111103/mylogfile.log
)
Ist es möglich, dies zu tun durch Log4j ohne die Implementierung custom class?
Jetzt bin ich mit log4j und log4j-extra,
Ich FileNamePattern-Attribut definiert in der log4j-API zu Rollen meine Datei Alltag
und set max Dateigröße auf 50 MB.
Meine log4j.xml
ist:
<appender name="MYAPPENDER" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="encoding" value="UTF-8" />
<param name="append" value="true" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="${catalina.home}/logs/MY-APP/%d{yyyyMMdd}/MY-APP_%d{yyyyMMddHHmmss}.log" />
</rollingPolicy>
<triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="maxFileSize" value="50000000" />
</triggeringPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{dd/MM/yyyy HH\:mm\:ss}] %-5p [%c.%M(),%4L] - %m%n" />
</layout>
</appender>
Ergebnis der oben genannten Einstellung ist, dass log-Datei ist nicht gerollt, am Anfang der nächsten Tage, aber wenn die Datei die Größe erreicht, um die 50 MB, log-Datei wird gerollt.
Bitte helfen Sie mir raten. m(_ _)m
- Hast du eine Lösung finden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Täglichen arbeiten für mich mit xml in Frage, nur verwandelt sich in log4j.Eigenschaften wie roll over nach 100KB (für Testzwecke):
Dadurch wird ein Zeitstempel directory (ein Verzeichnis pro Tag - optional) mit Protokollen mit dem folgenden format (eine pro Stunde für Testzwecke - ändern FileNamePattern, um Ihre Bedürfnisse anzupassen):
myCompanyLog_201602031030.melden Sie
myCompanyLog_201602031130.melden Sie
Ermöglichen die tägliche rolling: class="org.apache.log4j.DailyRollingFileAppender"
Ermöglichen und die max Datei Größe und die Anzahl der backup-Dateien
Aber Sie können nicht
MaxFileSize
mitDailyRolling
verwenden, so können Sie rolling file appenderBeispiel:
Oder Sie können dies tun, http://wiki.apache.org/logging-log4j/DailyRollingFileAppender
Vom RollingFileAppender Dokumentation
Daher, Ihre SizeBasedTriggeringPolicy wird ignoriert, da TimeBasedRollingPolicy konfiguriert ist oben. Der einzige Weg, um Ihre Anforderung wird eine benutzerdefinierte Klassen Umsetzung.
Auch, Wenn die Größe der log-Datei wirklich wichtig ist, können Sie erwägen, automatische gzip-Komprimierung zu beseitigen SizeBasedTriggeringPolicy und Sie müssen nur Ihre Protokolle roll jeden Tag.