当我刚刚将记录器与
LOGGER.error("Exception is -- " , exception);
和
LOGGER.error("Exception is -- " , exception.printStackTrace());
获得有关异常的更多详细信息的哪个更好?
最佳答案
主要区别在于第二个不编译。 printStackTrace()
是void
方法。
通常,当人们涉及printStackTrace()
时,他们会写
e.printStackTrace();
代替
LOGGER.error(message, e);
但不要将这两者合而为一。
无论如何,切勿在已记录日志的应用程序中使用
.printStackTrace()
,因为您的堆栈跟踪甚至可能不会记录到日志中,并且它会出现在System.err
流中,在其中应从具有正确日志记录的应用程序中写入任何内容。