把e.printStackTrace的堆疊資訊列印在log.error()中
log分為幾個級別:error、info、debug、fatal,應根據網站的具體情況,配置合適的level。
例子:
log.error("libzone.cn exception:連結資料庫出錯")
log.info("libzone.cn exception:連結資料庫出錯")
log.debug("libzone.cn exception:連結資料庫出錯")
log.fatal("libzone.cn exception:連結資料庫出錯")。
有時候,我們有必要把出錯時候的異常資訊列印進log裡面,例子:
}catch (Exception e){
e.printStackTrace();
log.error("libzone.cn exception:" + e);
//log.info("libzone.cn exception:" + e);
//log.debug("libzone.cn exception:" + e);
//log.fatal("libzone.cn exception:" + e);
}
以這種方式,指的是以"libzone.cn exception:" + e這種方式列印異常的時候,只會列印一個異常的概要資訊,例子如下:
libzone.cn exception:com.BusinessException: java.lang.NullPointerException
有時候,這樣的一個概要性的異常資訊對於分析問題幫助不大,有可能我們想把異常的堆疊具體資訊列印在log裡面,那怎麼在log.error()裡面把e.printStackTrace的堆疊具體資訊打印出來呢?這時候我們要以log.XXX(Object obj,Thowable e)這種方式,也就是要將異常物件作為第二個引數傳遞到log的方法中。例子如下:
}catch (Exception e){
e.printStackTrace();
log.error("libzone.cn exception:", e);
//log.info("libzone.cn exception:", e);
//log.debug("libzone.cn exception:", e);
//log.fatal("libzone.cn exception:", e);
}
這樣,我們就可以在log日誌裡面看到類似於控制檯(console)裡面那樣的異常詳細資訊了。
如果全部把異常詳細打印出來,有可能造成日誌檔案會很大;列印概要資訊,可能對分析問題幫助不大。應根據自己的實際情況,選擇合適的方式。