混合log4j 1.x和log4j 2

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

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

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

你知道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实现。 常见问题解答有一个可以澄清事情的图表 。 (别忘了从类路径中删除旧的log4j-1.2 jar!)