类加载器加载不正确的log4j.xml

时间:2018-09-13 06:45:44

标签: java maven log4j

我有以下结构的java maven项目

AA.ear
| _ lib
_ | 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。 Classloader始终从child_config.jar读取log4j.xml,但是自从升级到Spring 4以来,它无法按预期工作。原来是从parent_config.xml加载log4j.xml。

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

我是否可以针对这种情况提出建议?

1 个答案:

答案 0 :(得分:0)

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

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