my/src/test/resources中的log4j.properties并没有覆盖main



在测试期间,如何让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太老了;更新后的版本按预期运行。

最新更新