Java 当我捕获异常并记录它时,日志只显示异常名称,而不是异常堆栈
虽然登录服务器,但日志显示异常名称:NullPointerException,但异常堆栈未显示,因此我无法找到错误源 请告诉我为什么日志没有显示异常堆栈,以及如何更正它?日志系统是log4j系统Java 当我捕获异常并记录它时,日志只显示异常名称,而不是异常堆栈,java,exception,exception-handling,log4j,error-logging,Java,Exception,Exception Handling,Log4j,Error Logging,虽然登录服务器,但日志显示异常名称:NullPointerException,但异常堆栈未显示,因此我无法找到错误源 请告诉我为什么日志没有显示异常堆栈,以及如何更正它?日志系统是log4j系统 try { // ... function called } catch (Throwable t) { log.error("the Exception is : ", t); } 错误日志仅显示:异常为:java.lang.NullPointerException使用logger.ca
try {
// ... function called
} catch (Throwable t) {
log.error("the Exception is : ", t);
}
错误日志仅显示:异常为:java.lang.NullPointerException使用logger.catching(t)
或添加t.getStackTrace()
作为参数
如果您使用
logger.error(,)
log4j将只使用对象的toString
方法。您使用的是log4j吗?如果是,您实际上使用的是正确的双参数方法。它还应该打印堆栈跟踪。有关错误,请参阅文档-
如果仍然需要堆栈跟踪,请尝试此方法
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
String stacktrace = sw.toString();
log.error(stacktrace);
但我建议您坚持您的实施。这不是我说的。或者你在看另一个类?我的错,我在想log4j2。如果设置了StackTrace,是否已签入调试器?您是否已手动引发此异常?