2

我正在使用 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 的一些日志覆盖)

有什么想法吗?

4

4 回答 4

2

Log4j 2.3 有点老,2015-05-09 发布,差不多 3 年了。所以尝试使用更新版本;2.11.0 版是截至目前的最新版本,于 2018 年 3 月 11 日发布。

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

于 2018-03-24T19:28:39.693 回答
0

尝试

BasicConfigurator.resetConfiguration()

BasicConfigurator.configure()之后使用 logger 的方法中

于 2018-03-22T15:36:25.510 回答
0

尝试将自动增量变量添加到您的文件模式 (%i)。这对我来说很好。

filePattern="${sys:catalina.base}/logs/catalina.%d{yyyy-MM-dd}.%i.log"
于 2019-10-04T15:28:46.470 回答
0

在基于时间的 TimeBasedTriggeringPolicy 时间间隔中提到1它将每天滚动文件

于 2019-10-07T07:48:02.383 回答