是否可以将 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>
最佳答案
听起来您不需要 ROTATE 文件附加器。
根据你的情况,我建议你只使用normarl文件附加器,这会将所有日志记录放入一个文件中。您所需要做的就是按日期模式命名它,例如“yyyy-MM-dd.log”。
ps:如果你想要旋转,Linux 上的 logrorate
工具也是一个不错的选择。
关于java - Log4J:如何在午夜后保留日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46211984/