在error日志打印異常


在日志中打印異常,經常會看到以下的寫法:

logger.error(e.getMessage());

或者是:

e.printStackTrace();

這兩種其實都不太好。
e.getMessage只會打印出異常的類型,但是不會顯示出錯的異常方法堆棧,無法在日志中找出錯誤代碼
而e.printStackTrace();則是將異常打印到控制台,並不是打印到error日志中。

解決方法

看logger.error源碼,可以發現:

public void error(String msg, Throwable t);

public void error(String msg);

如果想在error日志中打印異常,可以使用第一種。

    logger.error(“xxx出錯”,e);   //第二個參數是Exception

注意,方法有兩個參數,通過逗號隔開,而不是用加號連接。
也就是說,並不是logger.error(“xxx出錯:”+e) 或 logger.error(e) 或logger.error(e.getMessage());

示例如下:

try{

}catch(Exception e) {
        logger.error(“xxx出錯:”,e) 
}


參考資料:
https://blog.csdn.net/heweimingming/article/details/76423186


免責聲明!

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



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