【发布时间】:2014-02-26 22:30:57
【问题描述】:
我有两个使用 Log4j2 日志记录的项目(P1 和 P2)。每个项目都有各自独立的 log4j2.xml 放在 src/main/resources 目录下(根据 maven 结构)。
问题是,当我通过我的 IDE (Eclipse) 在项目(比如 P1)中运行任何程序时,它会挑选出正确的 log4j2.xml。 (可能是因为 Eclipse 正确解析了类路径)。但是当我从命令行运行相同的程序时,它会挑选出项目 P2 的 log4j2.xml。
我曾多次尝试“清理和安装”maven 项目,但无济于事。
有什么想法吗?
【问题讨论】:
-
您能否发布两个项目的目录结构,特别是它们之间的关系?
-
另外,如果你的目标工件是一个可执行的jar,你能不能用归档管理器打开它,检查里面是否有预期的log4j配置文件?
-
项目 P2 是父项目。项目 P1 依赖于 P2,P1 包含我从命令行运行的可执行程序。
-
是的,P1.jar 文件包含正确的 log4j2.xml 文件。
-
Log4J 将拾取它在类路径中找到的第一个配置文件,如果它没有专门配置为选择一个特定的文件。如果您有竞争配置,您将受到类加载器/等的摆布。考虑指定一个限定名称并将它们排除在类路径根目录之外。
标签: java maven logging configuration log4j2