logback异常输出详细信息(调用堆栈)
2017-08-15 16:06
363 查看
可能使用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();
}
}
传入一个异常写入流中再转为字符串输出出来就是我们想要的详细信息(调用堆栈)
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();
}
}
传入一个异常写入流中再转为字符串输出出来就是我们想要的详细信息(调用堆栈)
相关文章推荐
- 在logback、log4j等日志输出工具中输出java异常调用堆栈
- android利用异常打印调用堆栈信息
- android ndk调用Log.getStackTraceString(new Throwable())输出堆栈信息
- Python使用traceback.print_exc()来代替print e 来输出详细的异常信息
- Android 利用异常获取调用堆栈信息
- 输出程序Crash时的详细堆栈信息(四)
- 在开发环境的DDMS中输出异常的堆栈信息
- C++抛异常时如何获取异常时的堆栈调用信息
- 异常堆栈信息输出到字符串
- Loner_li 面向对象 实例练习--要求:用户输入上述四个字段的值,实例化一个Computer类,然后调用类中方法输出电脑详细信息
- 如何在程序异常退出前输出当前进程的堆栈信息 Backtraces
- 日志记录异常堆栈详细信息
- native库崩溃后,利用logcat输出的调用堆栈信息定位问题的方法
- JAVA 程序中Log4j输出详细错误堆栈信息
- 图书详细信息接口调用代码实现
- 异常详细信息: System.Web.HttpRequestValidationException: 从客户端(fck_content="
- 调用控制台应用程序并获得程序的输出信息
- Python记录详细调用堆栈日志的方法
- C语言下程序的堆栈调用(详细,图示)
- Java调用weka实现交叉验证,并输出分类信息