如何使用两个根级别配置log4j2?

如何使用两个根级别配置log4j2?,log4j2,Log4j2,我希望通过以下方式配置log4j2: 向哨兵报告错误事件 将信息事件报告到日志文件 比如: <Loggers> <!-- ERROR events are reported to Sentry. --> <Root level="error"> <AppenderRef ref="Sentry" /> </Root>

我希望通过以下方式配置log4j2:

  • 向哨兵报告错误事件
  • 将信息事件报告到日志文件
  • 比如:

        <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>
    
    
    

    但我当然会得到错误“配置有多个根记录器。只能有一个。”。

    您也可以为appender指定日志级别-

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

    通过此配置,错误和更高级别的日志将发送到
    Sentry
    appender。信息和更高级别的日志(包括错误)将发送到适用于我的
    myLog

    解决方案:

        <!-- 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>
    

    这是否回答了您的问题?