有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

enter image description here

另外,有趣的是,只有当IRESTART调用应用程序时才会发生这种情况。如果我删除所有日志文件并让Log4J2从头开始,那么日志文件将按预期滚动,所有文件大小相同。但是,如果我从服务器停止应用程序并重新启动,那么日志文件又会变得疯狂

这个问题不仅存在于Websphere中,也存在于Tomcat中,所以我想这不是服务器问题

是否存在与此问题相关的已知错误以及如何修复


共 (1) 个答案

  1. # 1 楼答案

    log4j版本更新为2.11.0可以解决此问题