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 日志中