Log4j2 - xml到具有多个记录器的属性配置

时间:2018-05-09 20:42:51

标签: java log4j2

<Loggers>
    <!-- Apache Struts2 logger -->
    <Logger name="org.apache.struts2" level="warn" additivity="false">
        <AppenderRef ref="STDOUT"/>
        <AppenderRef ref="RollingFile"/>
    </Logger>
    <!-- Spring logger -->
    <Logger name="org.springframework" level="warn" additivity="false">
        <AppenderRef ref="STDOUT"/>
        <AppenderRef ref="RollingFile"/>
    </Logger>
    <!-- Root logger -->
    <Root level="info">
        <AppenderRef ref="STDOUT"/>
        <AppenderRef ref="RollingFile"/>
    </Root>
</Loggers>

上面是log4j2.xml配置文件的片段,我想将其转换为属性。

问题是当我在同一个文件(属性)中定义多个记录器时,只有root记录器工作意味着改变其他记录器上的级别并没有做任何事情。

在同一属性配置文件中定义多个记录器的正确方法是什么?

编辑:

logger.rolling.name = org.apache.struts2
logger.rolling.level = warn

logger.rolling.name = org.springframework
logger.rolling.level = warn

rootLogger.level = info
rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.rolling.ref = RollingFile
rootLogger.appenderRef.rolling.fileName = ${filename}

这是我尝试过的属性配置,但它没有用。

1 个答案:

答案 0 :(得分:1)

尝试以下配置 -

logger.rolling1.name = org.apache.struts2
logger.rolling1.level = warn
logger.rolling1.additivity = false
logger.rolling1.appenderRef.stdout.ref = STDOUT
logger.rolling1.appenderRef.rolling.ref = RollingFile

logger.rolling2.name = org.springframework
logger.rolling2.level = warn
logger.rolling2.additivity = false
logger.rolling2.appenderRef.stdout.ref = STDOUT
logger.rolling2.appenderRef.rolling.ref = RollingFile

rootLogger.level = info
rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.rolling.ref = RollingFile