Log4j2 - 不同级别的单独日志 - 如何仅打印INFO级别?

时间:2016-12-08 14:28:27

标签: log4j2

如何仅打印INFO级别?

我当前的日志是将所有INFO,WARN,ERROR和FATAL级别打印到控制台 - 我理解为什么会发生这种情况。 (因为它们都高于INFO)

有没有办法只指定,只有INFO级别才会被发送到控制台appender而不是它上面的所有内容?

目前有以下log4j2 xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="App" packages="">
    <Appenders>

    <File name="logFile" fileName="C:\Users\user\workspace\logs\log.out">
        <PatternLayout>
            <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
        </PatternLayout>
    </File>

    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>

</Appenders>
<Loggers>


    <Logger name="com.App" level="info" additivity="false">
        <AppenderRef ref="logFile" level="error"/>
        <AppenderRef ref="Console" level="info"/>

    </Logger>

    <Root level="error">
        <AppenderRef ref="logFile" />
    </Root>


</Loggers>

1 个答案:

答案 0 :(得分:1)

需要使用ThresholdFilter;

<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="ACCEPT" />

这会阻止WARN级别及其上方的所有内容。所以现在它只接受信息。