java Exception 出错的栈信息打印到日志中 打印堆栈信息

 

try {

  ....

} catch (Exception e) {

  e.printStackTrace();

  log.err(e.getMessage());

   .....

}

  通常我们都会去这样找到出错的信息,而打印的出错的信息栈,因为会输出到std.err中,所以在我们自己定义的日志文件中是不能够找到的,为了解决这个问题,可以通过如下代码解决:

  

复制代码
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();
            }
        }
     log.err(sw.toString());
复制代码

  当然上边的处理只是一个简单的示例,可以将上边的代码封装到一个处理异常的工具类中。

你可能感兴趣的:(logger)