如何获取e.printStackTrace()的内容

e.printStackTrace()一般是打印在控制台的,可是,有时候程序上线了须要看这个堆栈的内容就不容易了,一来生产环境打印的东西不少或者不多,二来有时候没法直接查看到,这个时候就须要把这些内容记录下来,好比记录到数据库中,下面的方法能够完整记录。 java

 

 

public static void main(String[] args) {  数据库

        try {  spa

            String aa = "";  string

            System.out.println(aa.substring(3));  it

 

        } catch (Exception e) {  io

            e.printStackTrace();  程序

            StringWriter sw = new StringWriter();  方法

            e.printStackTrace(new PrintWriter(sw, true));  数据

            String str = sw.toString();  static

            System.out.println("=========="); 

 

            System.out.println(str); 

        } 

    } 

 

打印的效果以下:

 

 

java.lang.StringIndexOutOfBoundsException: String index out of range: -3 

    at java.lang.String.substring(Unknown Source) 

    at java.lang.String.substring(Unknown Source) 

    at Getc.main(Getc.java:16) 

========== 

java.lang.StringIndexOutOfBoundsException: String index out of range: -3 

    at java.lang.String.substring(Unknown Source) 

    at java.lang.String.substring(Unknown Source) 

    at Getc.main(Getc.java:16)  

相关文章
相关标签/搜索