问题描述
您无需为JVM提供其他日志实现。
日志记录代码log4j.properties
使用类路径搜索文件。因此,您需要做的就是确保测试log4j.properties
文件位于发布文件之前的位置。
我使用Maven,它使目录中的文件布局变得容易。我的发布log4j.properties
在目录中src/main/resources
。我的测试版本进入src/test/resources
。Eclipse构建路径(classpath)设置为src/test/resources
在之前搜索src/main/resources
,因此您的单元测试使用测试文件。JAR(或WAR)构建说明使用中的文件src/main/resources
。
解决方法
我将SLF4J与LOG4J一起使用,并且配置通常在中log4j.properties
,并且它将日志级别设置为INFO。
但是,在测试期间,我想将日志设置为DEBUG。
我看不到一种自动执行此操作的方法,也无法让类似的内容log4j.tests.properties
仅在测试期间加载。
因此,我尝试在测试设置(@BeforeClass)中以编程方式执行此操作:
LogManager.getRootLogger().setLevel(Level.ALL);
没有成功…
我正在使用以下版本:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
我怎样才能达到这个结果?
编辑:
我认为我还不够清楚。这个问题不是关于设置正确的日志级别…而是关于在运行Junit测试时设置DEBUG日志级别,以及在任何其他情况下设置INFO日志级别。我想使它自动化。