java Log4J2每个日志文件的大小与Log4J2中定义的大小相同。xml
我当前的应用程序在使用JDK6的Spring 3.2
/Log4J2 2.3
/Websphere 8.5
上,我必须坚持使用旧版本的Log4J2,因为应用程序必须使用JDK6
现在有一个有趣的问题,似乎是由Log4J2
中的配置或错误引起的,那就是每次我从服务器重新启动应用程序时,滚动文件都在疯狂模式下工作,每个新的日志文件滚动都会以SizeBasedTriggeringPolicy
中定义的相同大小增长。以下是Log4J2.xml
配置:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Properties>
<Property name="log-path">C:/Application/logs</Property>
</Properties>
<Appenders>
<Console name="STDOUT">
<PatternLayout>
<pattern>%p -- %c -- %m%n</pattern>
</PatternLayout>
</Console>
<RollingFile name="RollingFile" fileName="${log-path}/application-l4j-haha.log"
filePattern="${log-path}/application-l4j-haha-%i.log">
<PatternLayout>
<pattern>%p -- %c -- %m%n</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="2 MB" />
</Policies>
<DefaultRolloverStrategy max="5" />
</RollingFile>
</Appenders>
<Loggers>
<Logger name="root" level="debug" additivity="false">
<AppenderRef ref="RollingFile" level="debug" />
</Logger>
<Root level="debug" additivity="false">
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
因此,每个文件都应该在2Mb
中维护,并在5
文件中旋转
这是文件输出,很明显,日志文件在每次滚动时都会增长,并达到非常大的大小,而且每个新文件都比前一个文件大,精确地说2Mb
另外,有趣的是,只有当IRESTART
调用应用程序时才会发生这种情况。如果我删除所有日志文件并让Log4J2从头开始,那么日志文件将按预期滚动,所有文件大小相同。但是,如果我从服务器停止应用程序并重新启动,那么日志文件又会变得疯狂
这个问题不仅存在于Websphere中,也存在于Tomcat中,所以我想这不是服务器问题
是否存在与此问题相关的已知错误以及如何修复
# 1 楼答案
将
log4j
版本更新为2.11.0
可以解决此问题