【问题标题】:How to make Intellij show logs when running a test method运行测试方法时如何使 Intellij 显示日志
【发布时间】:2015-01-11 12:20:07
【问题描述】:

假设我有以下代码:

private static final Logger log = LoggerFactory.getLogger( DummyTest.class );
@Test
public void test() {
    log.info("dummy log");
}

当我在 Intellij 中运行测试方法 test() 时,我没有在控制台输出中获得任何日志。但是,如果我从命令行通过mvn test 运行测试,我会得到日志。顺便说一句,我使用 testng。

那么,我怎样才能让 Intellij 显示日志?

【问题讨论】:

  • 如果你在测试方法中添加了sout,你能看到吗?否则,您确定您使用的是“真实”记录器,而不是“noop”版本?
  • 应该可以。如果您在执行测试后单击运行面板中的类:是否有与记录器相关的错误消息?也许 IntelliJ 会选择一个仅登录到文件的日志配置。尝试在包含控制台记录器的 src/test/resources 中添加 log4j.xml(或您使用的任何内容)。

标签: java maven intellij-idea


【解决方案1】:

我遇到了同样的问题 - 控制台中根本没有日志输出。 接受@wemu 的建议,我将以下文件添加到我的项目的src/test/resources/ 目录中,它为我提供了来自测试代码和被测类的调试输出。 注意:我使用的是 log4j2。所需的文件将根据您的日志记录框架而有所不同。

log4j.xml:

<?xml version='1.0' encoding='UTF-8'?>
<configuration monitorInterval="30">
    <appenders>
        <Console name='Console' target='SYSTEM_OUT'>
            <PatternLayout pattern='%d{HH:mm:ss.SSS} %p [%t] %c{1.}.%M %m%n' />
        </Console>
    </appenders>
    <loggers>
        <root level='trace'>
            <appender-ref ref='Console' />
        </root>
    </loggers>
</configuration>

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,截至 2020 年年中,以下行解决了我的问题:

    java.util.logging.Logger.getLogger(LoggingFeature.DEFAULT_LOGGER_NAME).addHandler(new ConsoleHandler());
    

    【讨论】:

      猜你喜欢
      • 2021-07-26
      • 2015-12-10
      • 1970-01-01
      • 2019-08-18
      • 2018-05-31
      • 2015-06-01
      • 1970-01-01
      • 2021-08-11
      • 2020-09-27
      相关资源
      最近更新 更多