【问题标题】:Exclude a class from a log4j appender从 log4j appender 中排除一个类
【发布时间】:2010-11-10 00:20:24
【问题描述】:

我有一个如下所示的 log4j.properties 文件:

log4j.logger.com.foo=INFO, foo-log
log4j.logger.com.foo.BarImpl=INFO, bar-log

通常对于匹配com.foo 的包结构的类,我希望使用foo-log 附加程序。但是,在该包中,我希望BarImpl 日志使用bar-log 附加程序,而不是foo-log 附加程序。目前,由 BarImpl 写入的任何日志都由 foo-log 和 bar-log 处理(如预期的那样)。如何让 foo-log appender 忽略 BarImpl 类?

【问题讨论】:

    标签: java log4j


    【解决方案1】:

    来自 Log4j 文档:

    给定记录器的每个启用的记录请求都将转发到该记录器中的所有附加程序以及层次结构中更高的附加程序。换句话说,appender 是从 logger 层次结构中附加继承的。例如,如果将控制台附加程序添加到根记录器,则所有启用的日志记录请求至少将打印在控制台上。如果另外一个文件追加器被添加到一个记录器,比如 C,那么启用的 C 和 C 的子项的日志记录请求将打印在一个文件和控制台上。可以通过将 additivity 标志设置为 false 来覆盖此默认行为,以便 appender 累积不再是相加的。

    尝试使用以下行(或类似行):

    log4j.additivity.com.foo.BarImpl=false

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多