类加载器装入不正确 log4j.xml



我有以下结构的java maven项目

AA.耳朵
|_ 库
    |_ parent_config.jar
       |_log4j.xml
    |_ child_config.jar
       |_log4j.xml[this is expeccted to load]
|_ BB.war


我正在使用log4j 1.2。因为parent_config.jar是由child_config.jar继承的依赖项目。它们都有log4j.xml。类加载器一直从child_config.jar读取 log4j.xml,但自从升级到 Spring 4 后,它没有按预期工作。原来从parent_config.xml加载 log4j.xml。

我尝试通过 4zip 从 4zip 中删除 log4j parent_config.jar.xml,最后它按预期工作。此外,这里的限制是我应该像往常一样构建parent_config.jar(不删除 log4j.xml),因为它也被其他项目使用。并排除了使用 WEB-INF/lib 和 -Dlog4j.configuration 的方法

我可以知道对这种情况有什么建议吗?

在某些运行时环境中,可以控制类路径条目的顺序。但我不建议这样做。

您应该提供一个具有不同名称的定制 log4j 配置文件,然后log4j.xml和/或不位于类路径根目录中,并通过系统属性log4j.configuration对其进行配置。

最新更新