我們在開發程序的過程當中,日志是必不可少的工具,這有助於我們分析問題的原因,和出錯的詳細信息,而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());
當然上邊的處理只是一個簡單的示例,可以將上邊的代碼封裝到一個處理異常的工具類中。
