0
votes

I'm working with log4j 2, version 2.4 on Jboss 6.4, my log4j2.xml is in WEB-INF/classes placed. I can deploy my war without errors about my log4j config, and I can log properly in my RollingFile name="myLog", but something I can't understand is why appear the info's logs for "myLog" in my console appender

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

 loggerBatch.info("test log");

Config:

<?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>
2

2 Answers

0
votes

Check your additivity settings. This will fix the issue

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

In addition to Andrey's answer you have declared 3 root loggers. There can only be one. Which one of the definitions will win is undefined.