2013-10-14 15 views
6

sto usando TimeBasedRollingPolicy e RollingFileAppender di avere un mio log ribaltamento ed essere archiviati come myLogFileName..log.gz:log4j: file archiviati rimozione politica

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

Quello che non capisco - è dove è definito quando e in che modo i vecchi file archiviati saranno completamente rimossi dal filesystem?

E, se voglio conservare sempre solo file vecchi di un mese, dove posso configurarlo (usando log4j (extra))?

risposta

1

tua domanda trova risposta qui How can I get log4j to delete old rotating log files?

RollingFileAppender fa questo. Devi solo impostare maxBackupIndex sul valore più alto per il file di backup.

Oppure si può decidere di utilizzare uno script How to configure log4j to only keep log files for the last seven days?

+3

Questo non risponde alla mia domanda ... maxBackupIndex & MaxFileSize vengono utilizzati se non esiste una politica basata sul tempo. e comunque, nei documenti dice che il valore predefinito per maxBackupIndex è 1. Ma vedo che ho 12 file (uno per ogni giorno), e mi piacerebbe sapere come posso aumentare/diminuire questo in qualche modo/valore predefinito da qualche parte – javagirl