Log4j 2 登录错误的 appender

Log4j 2 logging in the wrong appender

我在 Jboss 6.4 上使用 log4j 2,版本 2.4,我的 log4j2.xml 在 WEB-INF/classes 中。我可以部署我的 war 而不会出现关于我的 log4j 配置的错误,并且我可以在我的 RollingFile name="myLog" 中正确登录,但我不明白的是为什么会出现 [=16= 的信息日志] 在我的控制台附加程序中

private static final Logger loggerBatch = LogManager.getLogger("my.test");

 loggerBatch.info("test log");

配置:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <RollingFile name="myLog" fileName="C:\Workarea\my.log"
                     filePattern="C:\Workarea\myLog-%d{dd-MM-yyyy}-%i.log"
                     append="true">
            <PatternLayout>
                <Pattern>%d %p %c [%t] %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="5MB"/>
            </Policies>
            <DefaultRolloverStrategy max="5"/>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Logger name="my.test">
            <AppenderRef ref="myLog"  level ="info"/>
        </Logger>
        <Root level="debug">
            <AppenderRef ref="Console" />
        </Root>
        <Root level="error">
            <AppenderRef ref="Console" />
        </Root>
        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

检查您的可加性设置。这将解决问题

<Logger name="my.test" additivity="false">

除了 Andrey 的回答之外,您还声明了 3 个根记录器。只能有一个。未定义哪一个定义会获胜。