项目中的代码捕获到的异常(Exception
)信息应该通过日志管理(Log4j
)写入到日志文件,是非常不建议直接打印出栈信息的(e.printStackTrace()
);而通过 Exception 的方法直接获取到的异常信息并不全面,或直接对异常信息进行 JSON
格式化,但记录到日志信息是长长的一行,非常不利于阅读和跟踪问题。
我们可以调用 getStackTrace()
方法,返回的是栈跟踪信息数组,通过对数组遍历格式化拼接,可以让记录到日志文件的异常信息的格式达到 printStackTrace()方法的效果,这就是下面的工具类的目的,代码非常的简单。
LogUtils.java
/** * @Name: LogUtils * @Desc: Formatter Exception Info **/ public class LogUtils { /** * Formatter Exception Info */ public static StringBuffer exceptionTrackFormat(Exception e) { StringBuffer sb = new StringBuffer(); if (e != null) { sb.append(e.toString()); for (StackTraceElement element : e.getStackTrace()) { sb.append("\r\n\t").append(element); } } return sb.length() == 0 ? null : sb; } }
调用
logger.error("异常信息:{}", LogUtils.exceptionTrackFormat(e));
更多内容请访问:IT源点
注意:本文归作者所有,未经作者允许,不得转载