log4j是否为日常归档日志提供了任何机制?

bre*_*ish 7 java logging log4j

log4j 1.2是否为日常归档日志提供了任何机制?

每个人都说我可以通过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>
Run Code Online (Sandbox Code Playgroud)

jbx*_*jbx 5

您需要将您的附加程序定义为DailyRollingFileAppender,并定义日期模式以达到最新的粒度。以下是名为“文件”的示例附加程序,该附加程序输出到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
Run Code Online (Sandbox Code Playgroud)

然后,您需要定义记录器(或rootLogger)以输出到此附加程序。例如:

log4j.rootLogger=debug, file
Run Code Online (Sandbox Code Playgroud)