引用的Jar包的Log4j配置覆盖了程序的Log4j配置

李昌文 发布于 2013/09/09 17:40
阅读 2K+
收藏 1

开发语言:Java

描述:工程名叫做PDFWeb,引用了一个叫做 PDFCore 的Jar包。

    

    工程和Jar包都调用了以下代码配置Log4j,只是配置文件名不一样。

    static {
        PropertyConfigurator.configure(configPath);
    }

     在工程中的 代码运行到调用PDFCore.jar中的接口之前,记录日志都是按工程中的Log4j配置来记录的。调用了一次 PDFCore.jar中的接口之后,不管在PDFWeb中运行的代码还是其他地方的代码,都按照PDFCore.jar的Log4j配置来记录日志了。

    网上查了说要调用 PropertyConfigurator.configure 指定Log4j配置,但是系统和引用的Jar包都调用 PropertyConfigurator.configure 指定了Log4j配置。

    在这种情况下,请问高手们如何做能让引用包中Log4j配置不干扰系统中的Log4j配置,让两个地方的代码都按各自的配置来记录日志。



加载中
0
宅男小何
宅男小何
在配置自己的log4j之前,调用下 PDFCore。这样你的log4j配置就可以覆盖jar包里面的配置了
0
李昌文
李昌文

引用来自“宅男小何”的答案

在配置自己的log4j之前,调用下 PDFCore。这样你的log4j配置就可以覆盖jar包里面的配置了

这的确是一个办法,可以解决这个问题,但是不太优雅,,如果多个Jar包,为了防止被覆盖,那不是要在配置前将其他包全部调用一遍。

宅男小何
宅男小何
你这种情况还是比较少见的吧,一般公共服务jar都不会把这种log配置一起发布的吧
返回顶部
顶部