我有以下结构的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的方法
我是否可以针对这种情况提出建议?
答案 0 :(得分:0)
在某些运行时环境中,可能可以控制类路径条目的顺序。但我不建议这样做。
您应该提供一个自定义log4j配置文件,其名称不同于log4j.xml
,并且/或者不位于类路径根目录中,并通过系统属性log4j.configuration
对其进行配置。