如何在测试期间覆盖log4j.properties?

yeg*_*256 17 java logging maven-2 log4j

我正在尝试DEBUG在maven测试期间将所有消息记录到控制台.为此我创建了一个文件src/test/resources/log4j.properties,它将覆盖我已经拥有的配置src/main/resources/log4j.properties.不幸的是,这种压倒一切都没有发生.为什么以及如何解决它?

Rob*_*anu 26

将测试配置文件重命名为eg,log4j-surefire.properties并配置log4j以在surefire执行期间将其拾取:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <systemPropertyVariables>
            <log4j.configuration>file:${project.build.testOutputDirectory}/log4j-surefire.properties</log4j.configuration>
        </systemPropertyVariables>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)


yeg*_*256 2

它应该按原样工作,并且确实有效。问题出在其他地方。

附:我的类路径中的记录器一团糟:jog4j、slf4j、logback(来自其他依赖项)。据我了解,它们都是冲突的。我还没有清理这个烂摊子,而且我仍然不知道如何使所有包使用一种日志记录工具和一种配置。

  • 怎么没把烂摊子收拾干净呢。不知道如何让他们一起工作并得到正确的答案? (2认同)