BasicConfigurator 默认情况下不会在 JUnit 测试中记录堆栈跟踪

发布于 2024-11-13 12:21:08 字数 369 浏览 3 评论 0原文

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

BasicConfigurator.configure()

然后我通过 < strong>Commons Logging:

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

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

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

In running some JUnit tests I start with the following to set up Log4J:

BasicConfigurator.configure()

I'm then calling the following via Commons Logging:

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

This doesn't print stack traces though (only the exception message).

I need to know what steps are necessary to print stack traces via the simplified logging setup used in JUnit tests? I would prefer not to have to fully configure Log4J just for JUnit tests, but if I must, let me know.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青衫负雪 2024-11-20 12:21:08

这与记录器配置无关。

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

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

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

This is nothing to do with the logger configurations.

Read the javadoc for the fatal(Object) method. It says:

"WARNING Note that passing a Throwable to this method will print the name of the Throwable but no stack trace. To print a stack trace use the fatal(Object, Throwable) form instead."

If you want the logs to include a stacktrace, you must use the 2 argument version of the method. This applies to the corresponding methods for other log levels as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文