在JUnit测试中,BasicConfigurator默认不记录堆栈跟踪

时间:2011-06-04 03:28:52

标签: java logging log4j apache-commons-logging

在运行一些 JUnit测试时,我从以下内容开始设置 Log4J

BasicConfigurator.configure()

然后我通过 Commons Logging

调用以下内容

LogFactory.getLogger(this.getClass()).fatal(exception)

这不会打印堆栈跟踪(仅限异常消息)。

我需要知道通过JUnit测试中使用的简化日志记录设置来打印堆栈跟踪需要哪些步骤?我不想仅为JUnit测试完全配置Log4J,但如果必须,请告诉我。

1 个答案:

答案 0 :(得分:5)

这与记录器配置无关。

阅读fatal(Object)方法的javadoc。它说:

  

“警告请注意,将Throwable传递给此方法将打印Throwable但没有堆栈跟踪的名称。要打印堆栈跟踪,请使用致命(对象,可投掷)表单。”

如果希望日志包含堆栈跟踪,则必须使用方法的2参数版本。这也适用于其他日志级别的相应方法。