Java 中打印异常的堆栈信息分析

61 阅读1分钟
StringWriter errorStackTrace = new StringWriter();
e.printStackTrace(new PrintWriter(errorStackTrace));
LoggerManager.errorLogger().error(errorStackTrace.toString());
  • 首先创建一个 StringWriter
  • 第二句是重点! e.printStackTrace() 在没有参数时是把异常的堆栈内容输出到屏幕的 error 里,

    但是如果有参数时就会把内容输入到对应的参数里 所以这里其实是一个 StringWriter 转成了 PrintWriter 所以这里 e.printStackTrace 其实是把堆栈的异常存到了 StringWriter 里

  • 第三句 把 StringWriter 中的字符串堆栈信息打印到 error 日志中