Log4j輸出日志沒有堆棧解決


問題

logger.error("xxx error",exception)

正常的日志輸出 ,在生產環境中,時常會沒有異常堆棧輸出 。

java.lang.NullPointerException

這真的是讓人頭大, 這就是降維打擊。(看《三體》學的詞,哈哈)

解決

JVM為了性能會做優化, 如果頻繁拋出某個異常,會重新編譯 , 不再打印異常堆棧 。

只要在啟動參數加上 -XX:-OmitStackTraceInFastThrow , 就可以禁用該優化。

java.lang.NullPointerException
  at ........

Log4j日志的正確輸出方法

異常日志的輸出 的正確使用方式是:

logger.error("xxx error",exception); //正確
logger.error("xxx error , " + exception); //錯誤
logger.error("xxx error , " + exception.getMessage()); //錯誤
logger.error("xxx error : {} ",exception.getMessage()); //錯誤
。。。。。。
//正確的方式只有一個, 錯誤的方式千千萬萬

如果文章有幫助到您,請點個贊,您的反饋會讓我感到文章是有價值的


免責聲明!

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



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