【问题标题】:Commons Logging - Stdout/Stderr doesn't work at JUnit4 testsCommons Logging - Stdout/Stderr 在 JUnit4 测试中不起作用
【发布时间】:2014-09-04 09:58:03
【问题描述】:

问题:日志在我的单元测试中没有回显任何内容。日志记录在我的应用程序中运行良好,但是当我将相同的代码移动到 test 包时,它们停止工作。 (见下面的代码)

问题:如何在我的单元测试中获取日志?

代码:

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class LogTest {

  private static final Log _LOG = LogFactory.getLog(TransformerServiceTest.class);

  @Test
  public void testLogs() {
    _LOG.info("!!!!!!!!!!!!!!!!!!"); // NEVER ECHOES TO STDOUT
  }
}

更新:现在只有 _LOG.error() 有效

改为DEBUG级别后,只有ERROR级别有效

log4j.properties

# Root logger option
log4j.rootLogger=DEBUG, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

LogTest.class

public class LogTest {

    private static Log _LOG = LogFactory.getLog(LogTest.class);

    @Test
    public void test() {
        _LOG.error("Error works!"); //works
        _LOG.warn("Warn works!"); //doesn't work
        _LOG.info("Info works!"); // doesn't work
    }
}

【问题讨论】:

  • 将日志配置添加到您的测试中。如果您使用的是 maven 构建,请将日志配置放在 src/test/resources 目录中。
  • 也许也显示您的配置/构建过程?除了猜测之外,这些信息不足以让我们做任何事情。
  • @DwB 谢谢!我包括 log4j.properties 并且它有效。但我不知道如何包括所有级别的日志记录。你能建议如何记录信息、警告、错误吗?
  • @sheltem 你知道如何包含所有级别的日志记录吗?你能建议如何记录信息、警告、错误吗?
  • 将日志级别设置为最低值(DEBUG 或 TRACE),所有高于它的内容都会显示。

标签: java logging junit junit4 apache-commons-logging


【解决方案1】:

您只需将 log4j 依赖项添加到您的类路径中,一切都会正常工作。

如果您使用的是 Maven,那么只需将其添加到 pom.xml 中的 dependencies 元素:

...
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
...

如果您有一个更简单的工作环境,只需将其添加到您的类路径中

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 1970-01-01
    • 2012-03-09
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    相关资源
    最近更新 更多