脚本环境中的Log4J重复行 - 当不要控制RootLogger时

时间:2016-04-22 05:15:02

标签: java logging groovy log4j

问题:我们已经定义为appender的各种日志文件充斥着重复的日志行,因为我们打开了它。

我已经阅读了很多关于重复问题的帖子以及修复它的各种方法。我不相信他们中的任何一个都适用,并且觉得这是一个独特的情况。以下是区别因素:

  1. 环境是第三方JVM,它允许执行常规代码。
  2. 我们无权更改rootlogger属性或基本log4j配置。
  3. 我们必须以编程方式完成log4j的所有配置。
  4. 鉴于这些限制和要求,是否有可能实现以下目标: 1.不要将我们的日志行转储到主应用程序日志中 2.避免重复的日志行问题

    注意:我确实创建了自己的类加载器来执行代码,我不确定这是否相关。

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我的问题是由于我在代码中的错误以及对文档的误解。我认为必须在rootlogger上设置可加性,但看起来它可以在任何记录器上设置,并且它会影响向rootlogger的传播。

这个简单的命令给了我预期的效果。 log.setAdditivity(假)

我的其他问题让我觉得这不起作用是由于解析问题,以下行中的loggerName不是唯一的,因此我的许多类都获得了相同记录器的句柄,并给出了附加的外观:

log = getLogger(loggerName)