将log4j 1.x和log4j 2与依赖于log4j 1.x的第三方库混合

时间:2017-02-27 08:22:34

标签: java maven logging log4j log4j2

我正在维护一个使用log4j 1.x和大代码库的Maven项目。 log4j 1.x不仅在现有代码中使用,它还被项目所依赖的某些第三方库使用。

我现在想开始使用log4j 2,但我想知道这是否值得麻烦。

我知道可以混合两者(参见Mixing log4j 1.x and log4j 2)但是依赖于log4j 1.x的第三方库怎么样,我担心会有冲突。

那么我是否应该坚持使用log4j 1.x或者通过升级到log4j 2来冒险依赖地狱?

2 个答案:

答案 0 :(得分:4)

我自己也是这样做的。我认为不会有任何问题。 甚至我所做的项目都有第三方图书馆。

您可以简单地使用log4j-1.2-api-2.x.jar。 删除旧的log4j-1.2.x.jar并替换为以下三个jar:

  1. log4j-1.2-api-2.x - 将根据较旧的log4j版本处理第三方库。
  2. 的log4j-API-2.x.jar
  3. log4j的核 - 2.x.jar
  4. 此外,对于您自己的代码,您可以按照迁移步骤开始使用log4j2 api,第三方库将继续使用较旧版本和较新版本之间的桥接,即log4j-1.2-api-2.x.jar(又名log4j 1) .x桥)

    以下是官方文档:

    Migrate from log4j-1.x to log4j-2

答案 1 :(得分:1)

似乎自从@Nitin回答这个问题后,命名也许发生了变化。根据{{​​3}},Maven依赖是:

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-1.2-api</artifactId>
    <version>2.2</version>
  </dependency>
</dependencies>