2011-01-05 2 views
5

log4j 1.2 fornisce un meccanismo per il registro di archivio giornaliero?log4j fornisce un meccanismo per il registro di archivio giornaliero?

Tutti dicono che posso farlo tramite org.apache.log4j.rolling.TimeBasedRollingPolicy ma nelle fonti di 1.2.15 non vedo alcuna classe TimeBasedRollingPolicy.

ho trovato risoluzione:

<appender name="FILE" class="org.apache.log4j.rolling.RollingFileAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 

    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
     <param name="ActiveFileName" value="${jboss.server.log.dir}/server.log"/> 
     <!-- roll log file once a day --> 
     <param name="FileNamePattern" value="${jboss.server.log.dir}/archives/server.log.%d.gz"/> 
    </rollingPolicy> 

    <!-- A PatternLayout that limits the number of lines in stack traces --> 
    <layout class="com.mtvi.log4j.StackTraceLimitingPatternLayout"> 
     <!-- The full pattern: Date MS Priority [Category] (Thread) Message\n --> 
     <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/> 
    </layout> 
</appender> 
+0

@ user253202 Ciao, se hai trovato una soluzione per la vostra richiesta utilizzando apache-log4j-extras messo qui in modo che esso è condiviso con altre persone. Contrassegnalo come la tua risposta. – jbx

risposta

3

Cosa chiedete può essere fatto utilizzando DailyRollingFileAppender.

+1

Sì, ma non mi consente di inserire il registro arrotolato in una cartella specifica. Ho trovato una risoluzione - apache-log4j-extras – user253202

4

È necessario definire il proprio appender come DailyRollingFileAppender e definire il modello di data per la granularità massima giornaliera. Di seguito è riportato un esempio di appender denominato "file" che viene inviato a application.log e scorre il file giornalmente aggiungendo la data alla fine dopo la mezzanotte e iniziando un nuovo file.

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.File=application.log 
log4j.appender.file.DatePattern='.'yyyy-MM-dd 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d %5p [%t] - %m%n 

Sarà quindi necessario definire i logger (o root logger) per l'output su questo appender. Per esempio:

log4j.rootLogger=debug, file 
+1

Ok, e come farlo rotolare il file non nella stessa cartella del file originale, ma in qualsiasi altra cartella definita? – user253202