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

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

最佳答案

听起来您不需要 ROTATE 文件附加器。

根据你的情况,我建议你只使用normarl文件附加器,这会将所有日志记录放入一个文件中。您所需要做的就是按日期模式命名它,例如“yyyy-MM-dd.log”。

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

关于java - Log4J:如何在午夜后保留日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46211984/

相关文章:

java - 具有聚合内连接的 JPA Criteria 查询

java - log4j 计算器

c# - TextWriterTraceListener 跟踪文件太大

java - Log4j 记录到文件和控制台

java - 当我正确查看未定义的方法(构造函数)时,出现有关未定义方法(构造函数)的错误? ( java )

java - 我们可以制作JavaDoc工具来解析方法内的注释吗?

java - 通过 log4j 将 printStackTrace() 发送到文件而不捕获异常

java - 如何设置无限最大文件大小的log4j?

Java数组同步