如何设置 JUnit 测试的日志级别

2024-01-14

我在我的课程中使用 java 日志记录。

Example:

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 运行我的测试。


这是我发现的最简单、最通用的设置方法java.util.loggingJUnit 测试的级别。

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");
    }
}

In src/test/resources create logging.properties (.level必须是第一行 https://stackoverflow.com/a/39501521/2074605):

.level=FINEST
handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=FINEST

当您在此类中运行单元测试时,您应该看到:

五月 01, 2017 12:17:12 PM MyTest 测试00a

罚款:J.U.L.测试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置 JUnit 测试的日志级别 的相关文章

随机推荐