我正在创建一个可以访问现有业务代码的Web服务。 处理日志记录所需的jar是org.ops4j.pax.logging。 我把它包含在pom中
<dependency>
<groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-api</artifactId>
<version>1.6.0</version>
</dependency>
此jar允许访问在整个业务层中使用的特定log4j方法
LOGGER.debug(object, object);
其他需要的罐子之一是第三方罐子。 此jar包含不同版本的log4j,它不实现debug(object,object)方法。 当我将这个jar添加到pom时,JVM首先在第三方jar中找到log4j类,然后代码就会崩溃。
我试图排除第三方jar中的log4j但无济于事。
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
有什么想法吗?
答案 0 :(得分:0)
这是https://www.baeldung.com/slf4j-classpath-multiple-bindings的正确答案
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>