Utils-异常信息格式化工具类
项目中的代码捕获到的异常(Exception)信息应该通过日志管理(Log4j)写入到日志文件,是非常不建议直接打印出栈信息的(e.printStackTrace());而通过 Exception 的方法直接获取到的异常信息并不全面,或直接对异常信息进行 JSON 格式化,但记录到日志信息是长长的一行,非常不利于阅读和跟踪问题。
我们可以调用 getStackTrace()方法,返回的是栈跟踪信息数组,通过对数组遍历格式化拼接,可以让记录到日志文件的异常信息的格式达到 **printStackTrace()**方法的效果,这就是下面的工具类的目的,代码非常的简单。
- LogUtils.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20/**
* @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));

