Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我捕获异常并记录它时,日志只显示异常名称,而不是异常堆栈_Java_Exception_Exception Handling_Log4j_Error Logging - Fatal编程技术网

Java 当我捕获异常并记录它时,日志只显示异常名称,而不是异常堆栈

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

虽然登录服务器,但日志显示异常名称:NullPointerException,但异常堆栈未显示,因此我无法找到错误源

请告诉我为什么日志没有显示异常堆栈,以及如何更正它?日志系统是log4j系统

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,是否已签入调试器?您是否已手动引发此异常?