Log4j2覆盖过去一天的日志文件[英] Log4j2 overwrites past day log file

问题描述

我正在使用 Log4j2 2.3 版

log4j2.xml 看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
    <RollingFile name="RollingFile"
                 fileName="${sys:catalina.base}/logs/catalina.${date:yyyy-MM-dd}.log"
                 filePattern="${sys:catalina.base}/logs/catalina.%d{yyyy-MM-dd}.log">
        <PatternLayout pattern="[TID=%X{TId}] %d{MMM dd, yyyy HH:mm:ss,SSS} %c %M:%L %p: %m%n"/>
        <TimeBasedTriggeringPolicy modulate="true" />
    </RollingFile>
</Appenders>
<Loggers>
    <Root level="DEBUG" >
        <AppenderRef ref="RollingFile" />
    </Root>
</Loggers>
</Configuration>

当前一天的日志被当天的一些日志覆盖时,一切正常,直到第二天.

示例:catalina.2018-03-21.log 昨天(3 月 21 日)很好,但是当 catalina.2018-03-22.log 包含今天(3 月 22 日)的其余日志时,今天被 2018-03-22 的一些日志覆盖了

有什么想法吗?

推荐答案

Log4j 2.3 有点老了,2015-05-09 发布,快3年了.所以尝试使用更新版本;2.11.0 版是目前最新的版本,于 2018-03-11 发布.

更新:要继续使用 Log4j 2.3,您可以妥协您的要求.其中一个选项可能是对 fileName 属性使用静态值.例如..../catalina.log、.../catalina.current.log 等

本文地址:https://www.itbaoku.cn/post/978389.html