有 Java 编程相关的问题?

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

java配置logback。基于包拆分日志的xml,无重叠信息

我想将包a的所有内容都记录到日志文件a.loq中,并将所有其他内容(没有a的任何日志)记录到标准中。日志文件。到目前为止,我已经得到了a.log文件,但标准日志仍然包含了包a的所有内容

<logger name="my.package.a" level="INFO" additivity="false">
    <appender-ref ref="FILE-A"/>
</logger>

<root level="INFO">
    <appender-ref ref="FILE-STD"/>
</root>

共 (2) 个答案

  1. # 1 楼答案

    documentation

    logger has its additivity flag set to false such that its logging output will be sent to the appender named FILE but not to any appender attached higher in the hierarchy

    所以,这一切都是关于在你的日志中对appender和logger进行排序。xml

    appender应该声明为高于此记录器

  2. # 2 楼答案

    根据log4j的工作方式,它会将与过滤器匹配的所有内容记录到文件中。 但根记录器仍将记录所有来源的所有相关“信息”

    因此,不可能从根记录器中删除这种行为。您可以做的是:为过滤器添加更详细的内容,并将两者交换。 如下所示:

    <logger name="my.package.a" level="INFO" additivity="false">
        <appender-ref ref="FILE-A"/>
    </logger>
    
    <root level="WARN">
        <appender-ref ref="FILE-STD"/>
    </root>