当我刚刚将记录器与

 LOGGER.error("Exception is -- " , exception);




 LOGGER.error("Exception is -- " , exception.printStackTrace());


获得有关异常的更多详细信息的哪个更好?

最佳答案

主要区别在于第二个不编译。 printStackTrace()void方法。

通常,当人们涉及printStackTrace()时,他们会写

e.printStackTrace();


代替

LOGGER.error(message, e);


但不要将这两者合而为一。

无论如何,切勿在已记录日志的应用程序中使用.printStackTrace(),因为您的堆栈跟踪甚至可能不会记录到日志中,并且它会出现在System.err流中,在其中应从具有正确日志记录的应用程序中写入任何内容。

10-07 19:18