我一直在使用库apache-log4j-extras进行日志记录。它包含org.apache.log4j.Logger.类
现在,我不得不引用一些第三方库,它使用logback,并且它的依赖项log4j-over-slf4j (jar)。不幸的是,后一个jar还包含类org.apache.log4j.Logger.。
看起来后一个类是onejar类加载器的首选..。
我不需要登录和登录。我只想要回我的org.apache.log4j.Logger从apache-log4j-extras。我对Onejar插件有什么选择?
编辑:在IDEA中似乎是调试模式的问题,而不是onejar。然而,问题仍然存在:我如何确保用Onejar加载已调整的类?
EDIT2:,例如在C#中,它可以很容易地用"外接别名“特性解决。
发布于 2013-12-29 08:50:44
你为什么不把它排除在外呢?
<dependency>
<groupId>my.naughty.thirdparty</groupId>
<artifactId>thirdparty-with-log4j-over-slf4j</artifactId>
<version>${thirdparty.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>发布于 2013-09-19 19:22:13
看起来(IDEA中的Debug模式的)只需切换依赖项顺序就可以解决这个问题。
情况如何:
<dependency>
<groupId>my.naughty.thirdparty</groupId>
<artifactId>thirdparty-ref-log4j-over-slf4j</artifactId>
<version>0.50</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>apache-log4j-extras</artifactId>
<version>1.1</version>
</dependency>改为:
<dependency>
<groupId>log4j</groupId>
<artifactId>apache-log4j-extras</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>my.naughty.thirdparty</groupId>
<artifactId>thirdparty-ref-log4j-over-slf4j</artifactId>
<version>0.50</version>
</dependency>但是我肯定不能认为它是一个健壮的解决方案,特别是对于Onejar。
https://stackoverflow.com/questions/18902913
复制相似问题