有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在log4j2中只记录特定记录器的异常?

我有一个log4j2配置,可以将所有内容系统输出到控制台,并将一般内容记录到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) 个答案

  1. # 1 楼答案

    好的,一个人必须组合多个ThresholdFilters

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