Utils-异常信息格式化工具类

  项目中的代码捕获到的异常(Exception)信息应该通过日志管理(Log4j)写入到日志文件,是非常不建议直接打印出栈信息的(e.printStackTrace());而通过 Exception 的方法直接获取到的异常信息并不全面,或直接对异常信息进行 JSON 格式化,但记录到日志信息是长长的一行,非常不利于阅读和跟踪问题。

  我们可以调用 getStackTrace()方法,返回的是栈跟踪信息数组,通过对数组遍历格式化拼接,可以让记录到日志文件的异常信息的格式达到 **printStackTrace()**方法的效果,这就是下面的工具类的目的,代码非常的简单。

  1. 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;
    }
    }
  2. 调用

    logger.error(“异常信息:{}”, LogUtils.exceptionTrackFormat(e));

作者

光星

发布于

2018-10-10

更新于

2022-06-17

许可协议

评论