2013-10-14 11 views
6

Używam TimeBasedRollingPolicy i RollingFileAppender mieć moje dzienniki wywrócenie i być archiwizowane jako myLogFileName..log.gz:Log4J: zarchiwizowane pliki usuwanie politykę

<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> 

Co ja nie rozumiem - jest gdzie określa się, kiedy i jak naprawdę stare zarchiwizowane pliki zostaną całkowicie usunięte z systemu plików?

A jeśli chcę zachować zawsze tylko pliki starsze niż jeden miesiąc - gdzie mogę je ustawić (używając log4j (dodatki))?

Odpowiedz

1

Twoje pytanie jest tutaj How can I get log4j to delete old rotating log files?

RollingFileAppender to robi. Musisz tylko ustawić maxBackupIndex na najwyższą wartość dla pliku kopii zapasowej.

Albo może chcesz użyć skryptu How to configure log4j to only keep log files for the last seven days?

+3

To nie jest odpowiedź na moje pytanie ... maxBackupIndex & MaxFileSize są stosowane, jeżeli brak jest polityka oparta czas. i tak, w dokumentach mówi, że domyślną wartością dla maxBackupIndex jest 1. Ale widzę, że mam 12 plików (po jednym na każdy dzień), i chciałbym udnerstand, w jaki sposób mogę zwiększyć/zmniejszyć to w jakiś sposób/gdzieś predefiniowanej wartości – javagirl