打印异常栈

作者: botmaster | 来源:发表于2017-05-07 21:17 被阅读0次
  1. 调用无参数的Throwable.printStackTrace()方法,我们看下这个方法的实现:
    public void printStackTrace() {
        printStackTrace(System.err);
    }

printStackTrace()方法将异常栈输出到标准错误流中,但有些环境不支持标准错误流或者我们希望以统一的方式输出日志时候,这时候这种方式不是最好的选择。在生产环境中推荐使用第二和第三种方法。

  1. 使用guava中的Throwables.getStackTraceAsString(Throwable throwable)方法
  public static String getStackTraceAsString(Throwable throwable) {
    StringWriter stringWriter = new StringWriter();
    throwable.printStackTrace(new PrintWriter(stringWriter));
    return stringWriter.toString();
  }

该工具方法对标准库作了一层封装,将异常栈转换成字符流。

  1. 如果不希望引入guava依赖,则可以实现自己的工具方法。以作者自己的日志工具类为例:
/**
 *
 * All rights reserved.
 * Created by zzhan on 2017/3/31 20:00.
 */
public class LogHelper {

    /**
     * 打印异常栈日志
     * @param logger
     * @param throwable
     */
    public static void logStackTrace(Logger logger, Throwable throwable) {
        logger.error(getStackTraceAsString(throwable));
    }

    /**
     * 转换异常栈
     * @param throwable
     * @return
     */
    public static String getStackTraceAsString(Throwable throwable) {
        StringWriter writer = new StringWriter();
        throwable.printStackTrace(new PrintWriter(writer));
        return writer.toString();
    }
}

注:这个工具类在我自己的springboot示例中也使用到,一个主要的用途是记录全局异常处理器中的错误信息。

相关文章

  • 打印异常栈

    调用无参数的Throwable.printStackTrace()方法,我们看下这个方法的实现: printSta...

  • 逆向思维

    1. 利用异常栈信息输出调用栈 在Java中插入这样的代码,可以打印当前方法的调用栈;同理也可以在安卓的smali...

  • OJ程序积木 Java

    1、单链表的结点: 2、栈 3、二叉树的结点 4、主动抛出异常 5、打印单链表 6、打印数组元素 7、先序遍历二叉...

  • Activity launchMode基础

    打印acitivity任务栈信息:adb shell dumpsys activity activities打印正...

  • Android 打印堆栈信息

    打印栈堆信息 定时1分钟打印一次

  • log exception without trace 异常信息

    1.可用率报警后查看异常日志,发现打印的异常信息,没有堆栈信息 2.检查日志打印格式,是按照异常对象打印的,是正确...

  • 6.从尾到头打印链表

    思路:直接顺序打印链表,并入栈,出栈的顺序即为倒序

  • 不要轻易干掉异常打印语句

    不要轻易干掉异常打印语句, 异常打印语句能够快速帮您快速定位错误.

  • 日志打印无堆栈信息

    情况:系统抛出异常,日志没有打印堆栈信息 错误日志正常打印 分析:异常信息打印格式没有错误,本地测试没有问题,线上...

  • stack栈异常

    1 StackOverflowError 测试代码 结果 解决方法 StackOverflowError异常的...

网友评论

    本文标题:打印异常栈

    本文链接:https://www.haomeiwen.com/subject/nqhptxtx.html