2010-11-05 45 views
15

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

+0

它应该工作。 ;) – Bozho 2010-11-05 14:03:39

+1

@Bozho我也这么认为,但看起来像这两个文件冲突。当我有他们两个NO日志配置工程。他们都被忽略... – yegor256 2010-11-05 14:10:26

+0

我认为maven只包含两个资源的路径,所以log4j会混淆使用哪一个,而不会失败。罗伯特的解决方案有效吗? – 2010-11-05 14:20:01

回答

3

它应该工作,因为它是,它的作品。问题在别的地方。

ps。我在我的classpath中使用了logger:jog4j,slf4j,logback(来自其他依赖项)。据我了解,他们都有冲突。我没有清理这个混乱,我仍然不知道如何让所有软件包使用一个日志工具和一个配置。

+1

写什么 – Bozho 2010-11-05 20:08:54

+1

你怎么没有清理混乱。不知道如何让他们一起工作并得到正确答案? – 2015-02-09 16:32:42

26

将您的测试配置文件重命名为例如log4j-surefire.properties和配置log4j,以万无一失的执行过程中把它捡起来:

<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> 
+0

我投了你的答案,非常感谢。不幸的是,这对我来说并没有什么帮助,因为问题不在文件的位置,而是''log4j'和'slf4j'一起使用。 – yegor256 2010-11-05 15:02:43

+1

没错。那么你应该发布你的答案并接受它。 – 2010-11-05 15:11:49