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 日)很好,但今天被 2018-03-22 的一些日志覆盖,当时 catalina.2018-03-22.log 包含今天的其余日志( 3 月 22 日)
有什么想法吗?
尝试
BasicConfigurator.resetConfiguration()
在BasicConfigurator.configure()
之后使用logger的方法中
Log4j 2.3 有点老了,发布于 2015-05-09,快 3 年了。所以尝试使用更新版本; 2.11.0 版是目前最新的版本,于 2018 年 3 月 11 日发布。
更新:要继续使用 Log4j 2.3,您可以妥协您的要求。其中一个选项可能是对 fileName
属性使用静态值。例如。 .../catalina.log
、.../catalina.current.log
等
尝试将自动增量变量添加到您的文件模式 (%i)。
这对我来说很好。
filePattern="${sys:catalina.base}/logs/catalina.%d{yyyy-MM-dd}.%i.log"
在基于时间的 TimeBasedTriggeringPolicy 时间间隔中提及 1 它将按天更新文件
我正在使用 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 日)很好,但今天被 2018-03-22 的一些日志覆盖,当时 catalina.2018-03-22.log 包含今天的其余日志( 3 月 22 日)
有什么想法吗?
尝试
BasicConfigurator.resetConfiguration()
在BasicConfigurator.configure()
之后使用logger的方法中Log4j 2.3 有点老了,发布于 2015-05-09,快 3 年了。所以尝试使用更新版本; 2.11.0 版是目前最新的版本,于 2018 年 3 月 11 日发布。
更新:要继续使用 Log4j 2.3,您可以妥协您的要求。其中一个选项可能是对 fileName
属性使用静态值。例如。 .../catalina.log
、.../catalina.current.log
等
尝试将自动增量变量添加到您的文件模式 (%i)。 这对我来说很好。
filePattern="${sys:catalina.base}/logs/catalina.%d{yyyy-MM-dd}.%i.log"
在基于时间的 TimeBasedTriggeringPolicy 时间间隔中提及 1 它将按天更新文件