【问题标题】:BasicConfigurator doesn't log stack traces by default in JUnit TestsBasicConfigurator 在 JUnit 测试中默认不记录堆栈跟踪
【发布时间】:2011-09-08 05:39:28
【问题描述】:

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

BasicConfigurator.configure()

然后我通过 Commons Logging 调用以下命令:

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

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

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

【问题讨论】:

    标签: java logging log4j apache-commons-logging


    【解决方案1】:

    这与记录器配置无关。

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

    “警告请注意,将 Throwable 传递给此方法将打印 Throwable 的名称,但不会打印堆栈跟踪。要打印堆栈跟踪,请改用 fatal(Object, Throwable) 表单。”

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

    【讨论】:

    • 天啊!为什么他们会做那样不直观的事情?你是细节大师,正式成为我今天最喜欢的人!谢谢!
    猜你喜欢
    • 2014-11-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2011-04-06
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多