如何使用java的Logger类记录堆栈跟踪

我正在使用Java的类。我想进入,但返回。因此,我无法传递和打印异常的堆栈跟踪。Loggerex.printStackTrace()Logger.log(loglevel, String)printStackTrace()void

有没有办法我可以转换为 ,或者有没有其他方法可以打印异常的整个堆栈跟踪?voidString


答案 1

你需要明白,这实际上是.你不能转换什么都没有。你最终可能会打印成一个字符串,但是(相信我),你不想要它。voidnothingnessvoid

我想你要找的是

// assuming ex is your Exception object
logger.error(ex.getMessage(), ex);
// OR
Logger.log(errorLogLevel, ex.getMessage(), ex)

这将使用您配置的记录器打印错误消息。有关更多详细信息,您可以查看 Exception#getMessage() 的 java 文档。


答案 2

使用java.util.logging.Logger#log(Level,String,Throwable)并作为第三个参数传入,如下所示:ex

LOGGER.log(Level.INFO, ex.getMessage(), ex);

推荐