如何配置具有两个根级别的log4j2?

时间:2020-11-06 15:03:53

标签: log4j2

我想通过以下方式配置log4j2:

  1. 向哨兵报告ERROR事件。
  2. 将INFO事件报告到日志文件。

类似的东西:

    <Loggers>
        <!-- ERROR events are reported to Sentry. -->
        <Root level="error">
            <AppenderRef ref="Sentry" />
        </Root>

        <!-- INFO events are reported to log file. -->
        <Root level="info">
            <AppenderRef ref="myLog" />
        </Root>

但是我当然会收到错误消息“配置有多个root记录器。只能有一个。”。

2 个答案:

答案 0 :(得分:0)

您还可以为附加程序指定日志级别-

<Loggers>
        <Root>
            <AppenderRef ref="Sentry" level="error "/>
            <AppenderRef ref="myLog" level="info" />
        </Root>
</Loggers>

使用此配置,错误和更高级别的日志将发送到Sentry附加程序。并且信息和更高级别的日志(包括错误)将发送到myLog

答案 1 :(得分:0)

对我有效的解决方法:

    <!-- ERROR events are reported to Sentry. -->
    <Root level="error">
        <AppenderRef ref="Sentry" />
    </Root>

    <!-- INFO events are reported to myLog. -->
    <Logger name="com" level="info">
        <AppenderRef ref="myLog" />
    </Logger>
    <Logger name="org" level="info">
        <AppenderRef ref="myLog" />
    </Logger>