2011-01-05 2 views
5

Поддерживает ли log4j 1.2 любой механизм ежедневного архива?Предоставляет ли log4j какой-либо механизм для ежедневного архива журнала?

Все говорят, что я могу сделать это через org.apache.log4j.rolling.TimeBasedRollingPolicy, но в источниках 1.2.15 я не вижу никакого класса TimeBasedRollingPolicy.

Я нашел решение:

<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 Привет, если вы нашли решение своего запроса, используя apache-log4j-extras, поместите его здесь, чтобы он был доступен другим пользователям. Отметьте это как свой собственный ответ. – jbx

ответ

3

Что вы спрашиваете может быть сделано с помощью DailyRollingFileAppender.

+1

Да, но это не позволяет мне ставить свернутый журнал в определенную папку. Я нашел разрешение - apache-log4j-extras – user253202

4

Вам необходимо определить ваш append как DailyRollingFileAppender и определить шаблон даты, чтобы быть в деталях. Ниже приведен пример appender с именем «файл», который выводит в application.log и ежедневно перематывает файл, добавляя дату до конца после полуночи и запуская новый файл.

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 

Затем вы должны определить своих регистраторов (или rootLogger) для вывода в этот appender. Например:

log4j.rootLogger=debug, file 
+1

Хорошо, и как заставить его перевернуть файл не в ту же папку, что и исходный файл, но в любую другую определенную папку? – user253202

Смежные вопросы