【发布时间】:2016-08-31 17:11:07
【问题描述】:
我正在尝试将自定义 Log4J 配置添加到使用 IntelliJ 2016.1 构建的大型软件项目中,但 IDE 似乎完全忽略了单元测试中提供的属性文件(log4j.properties 纯文本 - 不是 XML) .
更具体地说,运行针对JUnit 4、IntelliJ 编写的测试不会显示任何日志消息,除非转到Run | Edit configurations 菜单,然后通过VM Options 框向VM 提供以下参数:
- -Dlog4j.configuration=/absolute/path/to/log4j.properties
奇怪的是指定文件的内容被完全忽略了。
因此,即使上述路径被替换为一个甚至不存在的文件的路径,或者该路径被完全删除,IntelliJ 仍会继续以与以前相同的布局打印日志消息,就好像它读取来自完全不同位置的属性。删除 -Dlog4j.configuration 参数会完全停止记录消息。就好像 IDE 将 -Dlog4j.configuration 理解为日志记录的 ON/OFF 开关,而不关心它提供的任何路径。
项目类路径中有多个Log4J 和SLF4J JAR 以及大量log4j.properties 文件,但即使删除所有后者也不会改变日志输出。显然-Dlog4j.configuration 指定的属性文件一直被Log4J 忽略。
有什么想法吗?
【问题讨论】:
标签: logging log4j configuration-files