java Exception 出錯的棧信息打印到日志中 打印堆棧信息


  我們在開發程序的過程當中,日志是必不可少的工具,這有助於我們分析問題的原因,和出錯的詳細信息,而java的異常機制又會方便且迅速的幫我們找到出錯行的位置。

 

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());

  當然上邊的處理只是一個簡單的示例,可以將上邊的代碼封裝到一個處理異常的工具類中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM