繁体   English   中英

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

[英]How to log exceptions only to a specific logger in 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>

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM