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

标签 java maven logging junit java.util.logging

我在我的类(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/

相关文章:

java - Hibernate validator 错误 Spring 启动

android-maven-plugin、仪器测试和testSize

java - 在 play 框架中迭代对象列表

java testng 重试逻辑

java - JPA 按列表元素属性从实体顺序中选择 List<Object>

java - Maven添加依赖时复制JAR

c# - 良好的远程应用程序日志记录/监控软件

performance - Node.js 控制台日志性能

java - 在 Android 上使用 Apache LogFactory

java - 无法在 Wildfly 服务器中部署 WAR 文件 - 扫描发现复制的文件内容不完整以供部署