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

Dav*_*rks 2 java logging log4j apache-commons-logging

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

BasicConfigurator.configure()

然后我通过Commons Logging调用以下内容:

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

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

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

Ste*_*n C 5

这与记录器配置无关.

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

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

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