Logging IntelliJ忽略了Log4J配置文件
我试图向使用IntelliJ 2016.1构建的大型软件项目添加自定义的Logging IntelliJ忽略了Log4J配置文件,logging,log4j,configuration-files,Logging,Log4j,Configuration Files,我试图向使用IntelliJ 2016.1构建的大型软件项目添加自定义的Log4J配置,但IDE似乎完全忽略了单元测试中提供的属性文件(Log4J.properties,纯文本-而非XML) 更具体地说,如果不转到Run | Edit configurations菜单,然后通过VM Options框向VM提供以下参数,则运行针对JUnit4、IntelliJ编写的测试不会显示任何日志消息: -Dlog4j.configuration=/absolute/path/to/log4j.proper
Log4J
配置,但IDE似乎完全忽略了单元测试中提供的属性文件(Log4J.properties
,纯文本-而非XML)
更具体地说,如果不转到Run | Edit configurations
菜单,然后通过VM Options
框向VM提供以下参数,则运行针对JUnit
4、IntelliJ
编写的测试不会显示任何日志消息:
- -Dlog4j.configuration=/absolute/path/to/log4j.properties
IntelliJ
继续以与以前相同的布局打印日志消息,就像它从完全不同的位置读取属性一样。删除-Dlog4j.configuration
参数将完全停止记录消息。这就好像IDE将-Dlog4j.configuration
理解为日志记录的开/关开关,而不关心随它提供的任何路径
在项目类路径中有多个Log4J
和SLF4J
jar,周围有许多Log4J.properties
文件,但即使删除所有后者也不会改变日志输出。显然,Log4J
始终忽略通过-Dlog4j.configuration
指定的属性文件
有什么想法吗?解决方案其实很简单。基本上,文件必须指定为
URL
,即必须提供如下配置:
- -Dlog4j.配置=file:///absolute/path/to/log4j.properties
file:
也有效,没有完整的URI
scheme语法file://
这一点在一份报告的答复中也有描述