如何仅将异常记录到log4j2中的特定记录器?

时间:2014-08-26 13:26:29

标签: java logging log4j log4j2

我有一个log4j2配置来Sysout控制所有内容+将一般内容记录到application.log文件+记录error.log文件的任何例外。

问题:应用程序+错误日志文件中都记录了错误。

org.apache.logging.log4j.Logger.error("Exception log", ex);

以下配置中可能缺少什么?

<Configuration>
    <Appenders>
        <Console name="CMD" target="SYSTEM_OUT">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </Console>

        <RollingFile name="APPLICATION" fileName="application.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </RollingFile>

        <RollingFile name="ERR" fileName="error.log">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Root level="all">
            <AppenderRef ref="CMD" />
            <AppenderRef ref="APPLICATION" />
            <AppenderRef ref="ERR" />
        </Root>
    </Loggers>
</Configuration>

1 个答案:

答案 0 :(得分:0)

好的,必须为它组合多个ThresholdFilters

<RollingFile name="APPLICATION" fileName="application.log">
    <Filters>
        <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
        <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
    </Filters>
</RollingFile>
相关问题