【发布时间】:2019-04-17 09:41:32
【问题描述】:
在我工作的项目的日志记录部分,我尝试优化日志管理中显示的错误消息。记录错误消息的编码如下:
String errorMessage =" Problem with server "+"\n"+t.getMessage();
_logger.fatal(errorMessage);
其中t为Throwable对象,_logger为Logger对象,与log4j框架相关。
我想知道的是,如果我使用_logger.fatal(errorMessage, t); 而不是_logger.fatal(errorMessage);,会发生什么变化?如果它们之间有很大的区别,使用哪个更好?
编辑:我刚刚意识到我复制了“致命”示例而不是“错误”。但是我的问题也同样适用于致命问题。
【问题讨论】:
-
如果你使用
_logger.fatal(errorMessage, t);,你会看到堆栈跟踪,否则只有消息 -
哪个更好用:这取决于...
-
如果你真的不想要堆栈跟踪,
t.toString()也可能比t.getMessage()提供更多信息。这是java.lang.NullPointerException: null与null之间的区别。