某些情况,在catch语句中,
e.printStackTrace()
不能将错误打印出来。如果使用
log.error(e.getMessage())
错误打印的又不完整。
解决方案如下:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(baos));
String exception = baos.toString();
log.error(exception);
将错误输出到一个管道里,再转为字符串。