我使用的是Log4j2 ver2.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日)的其余日志。
有什么想法吗?
发布于 2018-03-24 19:28:39
Log4j 2.3有点老了,在2015-09-09发布,差不多3岁.所以,尝试使用更新的版本;2.11.0版本是最新的版本,发布于2018-03-11。
更新:继续使用Log4j 2.3,您可以破坏您的需求。其中一个选项可以是对fileName
属性使用静态值。例如.../catalina.log
、.../catalina.current.log
等。
发布于 2018-03-22 15:36:25
试一试
BasicConfigurator.resetConfiguration()
在BasicConfigurator.configure()之后使用记录器的方法中
发布于 2019-10-04 15:28:46
尝试向您的文件模式(%i)添加一个自动增量变量。这对我来说很好。
filePattern="${sys:catalina.base}/logs/catalina.%d{yyyy-MM-dd}.%i.log"
https://stackoverflow.com/questions/49432150
复制相似问题