必威体育Betway必威体育官网
当前位置:首页 > IT技术

e.printStackTrace()在日志中输出

时间:2019-08-16 15:44:18来源:IT技术作者:seo实验室小编阅读:84次「手机版」
 

printstacktrace

通常e.getmessage()并不能获取全部的错误信息,需要用到e.printstacktrace()查看完整错误信息,但是这个方法是void 只能在控制台输出。

介绍两种方法,其实logger已经帮我做了这个事情

一、

log.ERROR("系统异常:",e);

一个直接通过log打印出来,这个方法是最简便的

二、

/**
     * 获取e.printStackTrace() 的具体信息,赋值给String 变量,并返回
     * 
     * @param e
     *            Exception
     * @return e.printStackTrace() 中 的信息
     */
    public static String getStackTraceInfo(Exception e) {
        StringWriter sw = null;
        printwriter pw = null;
        try {
            sw = new StringWriter();
            pw = new PrintWriter(sw);
            e.printStackTrace(pw);//将出错的栈信息输出到printWriter中
            pw.flush();
            sw.flush();
            return sw.toString();
        } catch (Exception ex) {
            return "printStackTrace()转换错误";
        } finally {
            if (sw != null) {
                try {
                    sw.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
            if (pw != null) {
                pw.close();
            }
        }

    }

另一个通过工具类转换成字符串,转成字符串了想咋输出就咋输出

另外e.printStackTrace()要尽量少用,可能会导致锁死

详见

java中e.printStackTrace()不要使用,请使用logger记录

工具类引用

java 获取e.printStackTrace() 的具体信息,赋值给String 变量 并返回

相关阅读

e.printStackTrace()导致的锁死

e.printStackTrace() 会导致锁死?这仅仅是打印啊,怎么可能?! 先别惊呼不可能,且听我细细道来。 先看截图1: 注意右下角区域,红框部分。

学习日志1---运用匈牙利命名法的命名规范,以及注释规范

记录下来方便查阅,用于C++编程 命名规范 1.变量命名 前缀 表示类型 例子 a 数组 aScore[50] b 波尔变量

如何优雅的写日志

前言在代码中编写日志是日常开发中的基本要求,记录日志一方面是方便日后通过日志能够查找问题原因,另一方面也可以用于后续的审计工

MFC学习日志(一)

因为之后好像会接触到MFC来编写一个界面,所以把鸡啄米的MFC编程入门(http://www.jizhuomi.com/school/c/149.html)看了一下,按照对话

新手店主~啊呀小宝~的开店日志4月6日

4月6日,清明放假第三天,可这三天哪也没去,就在家为店铺忙活了。昨夜还熬夜到两点半,我的大好青春啊,就这么奉献给淘宝了 ,淘友们也不说

分享到:

栏目导航

推荐阅读

热门阅读