2013-10-14 8 views
6

I TimeBasedRollingPolicy und RollingFileAppender bin mit einem über meine Protokolle haben Rollen und als myLogFileName..log.gz archiviert werden:log4j: archivierten Dateien zu entfernen Politik

<appender class="org.apache.log4j.rolling.RollingFileAppender" name="myLogFile"> 
    <param value="/var/log/my/myLogFileName.log" name="File"/> 
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
     <param name="FileNamePattern" value="/var/log/my/myLogFileName.%d.log.gz" /> 
    </rollingPolicy> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param value="%d [%t] %-5p - %m%n" name="ConversionPattern"/> 
    </layout> 
</appender> 

Was ich nicht verstehe - ist, wo Wann und wie werden alte archivierte Dateien vollständig aus dem Dateisystem entfernt?

Und wenn ich immer nur keine älter als einen Monat alten Dateien behalten will - wo kann ich es einrichten (mit log4j (Extras))?

Antwort

1

Ihre Frage wird hier beantwortet How can I get log4j to delete old rotating log files?

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

oder Sie können ein Skript How to configure log4j to only keep log files for the last seven days?

+3

Das verwenden will nicht meine Frage beantworten ... MaxBackupIndex & maxFileSize verwendet werden, wenn es keine zeitbasierte Politik. und überhaupt, in der Dokumentation heißt es, dass der Standardwert für maxBackupIndex 1 ist. Aber ich sehe, dass ich 12 Dateien habe (eine pro Tag), und ich möchte herausfinden, wie ich diesen irgendwie/irgendwo vordefinierten Wert erhöhen/verringern kann – javagirl