在测试期间,如何让src/test/resources/log4j.properties
文件覆盖/src/main/resources/log4j.properties
?第一个最终位于target/test-classes
之下,第二个位于target/classes
之下。
是的,我已经找到了重复的,但在这种情况下,我没有混合的记录器——我正在使用只有slf4j-log4j12。
您可以在pom.xml中使用maven概要文件、过滤和maven war插件。有了这些,您可以在log4j.properties中定义需要的内容。
带logback的示例:
在config.test.properties:中定义变量
basepath_log=/var/log/ProjectName
在logback.xml中定义占位符(相当于log4j.properties):
<appender>
...
<file>${basepath_log}/ProjectName.log</file>
...
</appender>
配置文件定义:
<profiles>
<profile>
<id>test</id>
<properties>
<targetenv>test</targetenv>
</properties>
</profile>
</profiles>
过滤(pom.xml):
<filters>
<filter>src/main/resources/filter/config.${targetenv}.properties</filter>
</filters>
然后,您可以使用选项-Ptest或在IDE(Netbeans,Eclipse…)中选择它,直接与maven一起使用概要文件
对不起,对不起。这个错误表明我的问题可能是对一个坏版本的依赖。果不其然——2.3太老了;更新后的版本按预期运行。