簡體   English   中英

共用記錄-Stdout / Stderr在JUnit4測試中不起作用

[英]Commons Logging - Stdout/Stderr doesn't work at JUnit4 tests

問題:在我的單元測試中,日志沒有回顯任何內容。 日志在我的應用程序中運行良好,但是當我移動相同的代碼來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
    }
}

您只需要將log4j依賴項添加到類路徑中,一切就可以正常工作。

如果您使用的是Maven,則將其添加到pom.xml中的dependencies元素中:

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

如果您的工作環境更簡單,只需將其添加到類路徑中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM