混合log4j 1.x和log4j 2

时间:2014-09-23 21:39:57

标签: java logging log4j log4j2

我有一个使用log4j2编写的新应用程序,以利用它的一些新功能。它使用的其中一个库有点旧,用log4j 1.x构建。我遇到的问题是应用程序中的新代码写入日志,但旧库中的代码不会写入日志。我甚至有一个类是旧库中某个东西的子类,也是旧库中的代码调用,这个代码也不会写入日志。我已将应用程序配置为使用log4j2版本2.0.2,并且在将旧库引用为maven依赖项时明确排除了log4j。

如何让旧库中的代码登录到与我的新代码相同的文件?

重新编写旧库应该被认为是最后的选择

1 个答案:

答案 0 :(得分:38)

您是否知道log4j2包含log4j-1.2的桥接器?您可以通过删除旧的log4j-1.2.17.jar来使用它,并包含这三个jar:

  • 的log4j-API-2.x.jar
  • log4j的核 - 2.x.jar
  • 的log4j-1.2-API-2.x.jar

这将导致应用程序对log4-1.2 API的所有调用都被路由到log4j2实现。常见问题解答有diagram,可以澄清事情。 (不要忘记从类路径中删除旧的log4j-1.2 jar!)