我们在RollingFileAppender上使用TimeBasedRollingPolicy来每天滚动日志。我注意到在我们的服务器重启(通常跨越午夜)的日子里,滚动文件中出现了一些空白。随后的滚动有两天的日志。
TimeBasedRollingPolicy是否考虑了跨越正常滚动窗口的停机时间?有没有办法解决这个问题而无需编写自定义策略?
我们正在使用预先打包的框架(Liferay),并在其lib中注入自定义jar并不理想。
Log4j:1.2.16,Log4j-extras:1.1
<appender name="EXAMPLE" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="file" value="/example/logs/example.log" />
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/example/logs/example.%d{yyyy-MM-dd}.log.gz" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyyMMddHHmmssSSS}|%m%n" />
</layout>
</appender>
<appender name="EXAMPLE-ASYNC" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="500"/>
<appender-ref ref="EXAMPLE"/>
</appender>
<logger name="com.company.example" additivity="false">
<level value="INFO" />
<appender-ref ref="EXAMPLE-ASYNC" />
</logger>
Here是有关常见翻转问题的log4j 1.2常见问题解答,均不适用。