Java打印完整的堆栈信息
来源:互联网 发布:java 二维数组 length 编辑:程序博客网 时间:2024/06/05 10:25
Java print full StackTrace
我们在编写一些组件时,使用的日志系统有时并不能打印完整的堆栈信息,比如slf4j,log4j,我们在调用log.error("found error ...",e)
打印异常时,只打印一行异常信息。我们看下slf4j的源码
/** * Log an exception (throwable) at the ERROR level with an * accompanying message. * * @param msg the message accompanying the exception * @param t the exception (throwable) to log */ public void error(String msg, Throwable t);
它在打印exception时,只是打印了堆栈当中的第一行Throwable
的信息, 而我们想要的是把整个堆栈都打印出来,这时我们会用下面方式打印堆栈信息。
e.printStackTrace()
这虽然打印了完整的堆栈信息,但它并不会把堆栈信息定向到日志文件中,这时我们就需要利用利用输出流把信息重新定到变量中,然后再送入到日志系统中
/** * 完整的堆栈信息 * * @param e Exception * @return Full StackTrace */ public static String getStackTrace(Exception e) { StringWriter sw = null; PrintWriter pw = null; try { sw = new StringWriter(); pw = new PrintWriter(sw); 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(); } ``` 然后我们这样调用就解决了这个问题
log.error(“fount error…”, getStackTrace(e))
“`
0 0
- Java打印完整的堆栈信息
- java堆栈信息打印
- logger.error完整打印错误堆栈信息
- 如何打印Java异常的完整堆栈内容
- 获取完整的堆栈信息
- Java调试打印堆栈信息
- Java日志出现异常,但没有完整的堆栈信息
- 打印错误的堆栈信息
- java Exception 出错的栈信息打印到日志中 打印堆栈信息
- java Exception 出错的栈信息打印到日志中 打印堆栈信息
- java打印异常中的堆栈信息
- Android Java 打印调用堆栈信息
- 将Java异常的完整堆栈内容打印到log4j日志
- 整个出错打印的堆栈信息
- 打印函数调用的堆栈信息
- Android中打印堆栈信息的方法
- ExceptionUtil:打印堆栈信息
- c++ 打印堆栈信息
- NSoperation-( 多线程2)
- 中缀表达式转换为前缀及后缀表达式并求值【摘】
- 字符char、字节byte傻傻分不清(2015年10月13日)
- Python 使用thrift连接hbase || 远程连接hbase
- jQuery-autoComplete实例
- Java打印完整的堆栈信息
- Java多线程编程总结
- ios- block循环引用问题
- delphi正则表达式学习笔记(一)
- json字符串转换
- vs2010+win7 64bit OpenGL程序无法启动此应用程序,因为计算机中丢失glut32.dll
- git 查看 本地仓库的commit记录
- Volley发送StringRequest请求
- Android_01_电话拨号器