2017-09-14 69 views
0

可以配置log4j RollingFileAdapter在午夜后不更改日志文件名吗?如果日志记录在2017-09-15开始,并且在00:00之后继续保留一切,那么我将使用配置(请参见下文),并将其记录到另一个日志文件2017-09-16。我想完整登录到同一个文件。只有在2017-09-16开始另一次运行时,才会创建一个新的日志。Log4J:如何在午夜后保留日志文件

<appender name="file-output" class="org.apache.log4j.rolling.RollingFileAppender"> 
    <param name="ImmediateFlush" value="false"/> 
    <param name="Threshold" value="INFO"/> 
    <rollingPolicy name="file" class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
     <param name="FileNamePattern" value="log/${logfilename}_%d{yyyy-MM-dd}.log"/> 
    </rollingPolicy> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n"/> 
    </layout> 
</appender> 
+0

https://stackoverflow.com/a/36496683/3635454 – pleft

+0

可能重复[每log4j运行一个日志文件](https://stackoverflow.com/questions/19132433/one-logfile-per-run-with -log4j) – pleft

回答

0

听起来像你不需要ROTATE文件appender。

在您的情况下,我会建议您只使用normarl文件appender,这将使所有日志记录成为一个文件。所有你需要做的是按日期模式命名,如“yyyy-MM-dd.log”。

ps:如果你想旋转,在linux上的logrorate工具也是不错的选择。