Log4J:如何在午夜后保留日志文件

时间:2017-09-14 06:26:53

标签: java log4j rollingfileappender

可以配置log4j RollingFileAdapter不要在午夜后更改日志文件名吗?我正在使用配置(见下文),如果日志在2017-09-15开始并持续一夜,00:00之后的所有内容都将记录到另一个日志文件2017-09-16。我想完全登录到同一个文件。只有在2017-09-16开始另一次运行时,才会创建新日志。

<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>

1 个答案:

答案 0 :(得分:1)

听起来你不需要ROTATE文件追加器。

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

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