Log4j 2构建器被覆盖

时间:2017-12-01 01:23:43

标签: java log4j2

我一直在尝试为Log4j 2替换旧的.xml文件已有一段时间了,但无法让它工作。

我最大的问题是我为包添加的记录器完全被忽略了。

builder.add(builder.newLogger("org.reflections", Level.INFO));

这应该意味着忽略调试,但我可以在我的控制台中看到这个:

2017-12-01 02:16:45,523 [AWT-EventQueue-0] DEBUG org.reflections.Reflections - could not scan file

这不遵循我创建的PatternLayout,这使我相信Log4j 2被反射中的记录器忽略了。

奇怪的是,我在构建器API中执行与在.xml文件中完成相同的操作...

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

好的,经过几个小时后,我设法弄明白了。 所以问题分为两部分。

  1. 我有一个依赖,使用slfj4竞标log4j,而不是log4j2,所以我排除了它,并用slf4j的log4j2s实现替换它,并解决了奇怪的格式化日志,因为他们现在去了正确的地方。 为什么从一开始就不起作用,因为我从log4j到log4j2的桥接作为依赖我还没想到。
  2. 第二个问题是我的log4j2自定义ConfigurationFactory将随机停止查找我的自定义appender。经过大量的谷歌搜索,我终于找到THIS,在第3步中添加了他们的appender存储在log4j2.xml中的包。因此,我发现在log4j2s构建器中有一个名为setPackages()的方法。现在它似乎一直在努力。