sách gpt4 ai đã đi

java - LOGGER.error(exception.getMessage()) 和 LOGGER.error(exception.getMessage(), exception) 有什么区别

In lại 作者:行者123 更新时间:2023-12-05 04:35:18 30 4
mua khóa gpt4 Nike

Like in this picture

我知道它们都可以正常工作,但我只是想知道它们之间有何不同? PS:我是初学者。

1 Câu trả lời

MỘT LogEvent可以同时包含消息和异常。如果您使用第一种形式:

LOGGER.error(exception.getMessage());

只有错误消息会被记录下来,您的日志中会有类似的输出(取决于布局):

[ERROR] - Exception message.

如果你使用第二种形式:

LOGGER.error(exception.getMessage(), exception);

Bạn sẽ同时收到消息和异常。这通常会在日志中输出堆栈跟踪:

[ERROR] - Exception message.
java.lang.RuntimeException: Exception message.
at pl.copernik.log4j.Log4j2Test.run(Log4j2Test.java:19) [classes/:?]
at pl.copernik.log4j.Log4j2Test.main(Log4j2Test.java:15) [classes/:?]

由于您始终可以配置 Log4j 2.x 以抑制输出中的堆栈跟踪(请参阅 PatternLayout tài liệu TRONG alwaysWriteExceptions),因此第二种形式总是更好,因为它提供了更多信息。

备注:由于堆栈跟踪总是打印错误消息,我建议使用第三种形式:

LOGGER.error("An unexpected condition occurred while performing foo: {}",
exception.getMessage(), exception);

这样你就可以在异常发生时解释上下文:

[ERROR] - An unexpected condition occurred while performing foo: Exception message.
java.lang.RuntimeException: Exception message.
at pl.copernik.log4j.Log4j2Test.run(Log4j2Test.java:19) [classes/:?]
at pl.copernik.log4j.Log4j2Test.main(Log4j2Test.java:15) [classes/:?]

关于java - LOGGER.error(exception.getMessage()) 和 LOGGER.error(exception.getMessage(), exception) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71064636/

30 4 0
Bài viết được đề xuất: graphql - Strapi v4 嵌套数据过多
Bài viết được đề xuất: c# - CosmosDB 中的模拟 ItemResponse
Bài viết được đề xuất: xcode - 如何在 Rosetta 下运行 Xcode Build Server?
Bài viết được đề xuất: python - VSCODE - 如何选择远程 ssh 的 python 版本?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com