logback异常输出详细信息(调用堆栈)

来源:互联网 发布:linux vi文本编辑器 编辑:程序博客网 时间:2024/06/15 21:47

可能使用logback或者log4j的大家都遇到过这种情况,想要在try  catch中输出异常到日志的时候使用了logger.error(e.getMessage());但是这样输出后只有一行简单的异常提示,并没有详细的调用堆栈的信息,所以我们需要定义一个工具类来获取异常详细的调用堆栈。

import java.io.IOException;import java.io.PrintWriter;import java.io.StringWriter;public class ExceptionUtil {public static String getMessage(Exception e) {StringWriter sw = null;PrintWriter pw = null;try {sw = new StringWriter();pw = new PrintWriter(sw);// 将出错的栈信息输出到printWriter中e.printStackTrace(pw);pw.flush();sw.flush();} finally {if (sw != null) {try {sw.close();} catch (IOException e1) {e1.printStackTrace();}}if (pw != null) {pw.close();}}return sw.toString();}}

传入一个异常写入流中再转为字符串输出出来就是我们想要的详细信息(调用堆栈)