我在我的类(class)中使用 java 日志记录。
例子:
public class MyClass {
private static Logger logger = Logger.getLogger(MyClass.class.getName());
....
}
当我为该类编写 JUnit 测试时,我想将 Loglevel 设置为“FINE”。我试过:
@Before
public void setup() throws PluginException {
Logger.getGlobal().setLevel(Level.FINE);
....
}
但这没有任何效果。 使用 Java 日志记录时如何控制 JUnit 测试中的日志级别? 我正在使用 Maven 运行我的测试。
最佳答案
这是我发现的为 JUnit 测试设置 java.util.logging
级别的最简单、最通用的方法。
import java.util.logging.Level;
import java.util.logging.Logger;
import org.junit.BeforeClass;
import org.junit.Test;
public class MyTest
{
@BeforeClass
public static void beforeClass()
{
System.setProperty("java.util.logging.config.file", ClassLoader.getSystemResource("logging.properties").getPath());
}
@Test
public void test00a()
{
Logger.getLogger(MyTest.class.getName()).log(Level.FINE, "J.U.L. test");
}
}
在 src/test/resources
中创建 logging.properties
( .level
must be the first line ):
.level=FINEST
handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=FINEST
当您在此类中运行单元测试时,您应该看到:
May 01, 2017 12:17:12 PM MyTest test00a
FINE: J.U.L. test
关于java - 如何设置 JUnit 测试的日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38566865/