tgk*_*rog 8 java logging exception
我的问题是:最好用getMessage或toString或两者来记录?考虑到开源引发的错误.在评论中看到了问题,但没有得到答案.也许我错过了什么?不要介意记录其中一个的性能损失,但除非有充分的理由,否则不要记录它们.
含义log(ex)或log(ex.getMessage),不是谈论堆栈跟踪.
记录异常:哪个更好:log.warn(ex.getMessage(),ex)或log.warn(ex,ex);
我注意到有时getMessage返回空或null,所以通常的做法是有任何理由不使用:
log.warn(ex, ex);
Run Code Online (Sandbox Code Playgroud)
因为它似乎打印了类名和消息(如果设置)?我想有一个原因可能是,如果一个子类已经过度使用字符串而不是打印消息,但实际上是否有任何hibernate,apache或spring libs这样做?
Thi*_*ilo 10
怎么样
log.warn("some descriptive message, maybe with context {}",
someId, ex);
Run Code Online (Sandbox Code Playgroud)
异常详细信息已经作为堆栈跟踪的一部分打印出来,因此您通常不需要将它们包含在消息中.
如果你想要抑制堆栈跟踪并且只打印异常消息,通常ex.toString()比ex.getMessage()它更好,因为它还包括异常类名,而消息却没有.实际上,消息通常是空的(例如使用NullPointerExceptions).
| 归档时间: |
|
| 查看次数: |
12778 次 |
| 最近记录: |