log4j實現自動列印所有異常資訊

2021-07-16 06:24:27 字數 466 閱讀 5008

因為最近工作中經常用到log4j2檢視日誌,所以昨天把log4j2的內容又好好看了一下。log4j2記錄日誌資訊只要log.info()將需要的資訊記錄就好了,用起來非常方便。但考慮到只要程式中有異常,就要將異常記錄,所以我們無法手動的將所有異常資訊通過log.info()記錄(除非每步操作都要捕獲異常,並將異常記錄),所以這是個問題,在網上找了一下,大多數都答非所問,不過最終找到答案,就是通過spring aop的方式實現,我們知道aop的切面類,有這幾種方法:doafter,doaround,dobefore,dothrowing,看到了吧,重點在dothrowing方法中,只要在dothrowing將異常捕獲列印,並將切面的作用域加入到我們想要處理的包或類中,問題就解決了,當然dothrowing只處理作用域未處理的異常,作用域處理的異常還需要你手動新增log.info列印。這裡推薦log4j2和spring aop的兩個簡單使用介紹:

1:2:

結合兩個,就可解決問題。

log4j列印異常資訊,未列印堆疊

使用logger.error方法時只能列印出異常型別,無法列印出詳細的堆疊資訊,使得定位問題變得困難和不方便。logger類下有多個不同的error方法,根據傳入引數的個數及型別的不同,自動選擇不同的過載方法。當error object obj 只傳入乙個引數時會將異常物件作為object使用,並最...

log4j 列印異常日誌到檔案中

log4j.properties 定義 debug 優先順序,r 為日誌輸出目的的 測試 package com.zhongren.test import org.apache.log4j.logger public class test catch exception e 測試結果 配置錯誤級別 ...

Log4j 列印堆疊資訊

我的理解當然很簡單,e.printstacktrace 是在控制台輸出來的,logger4j是在日誌中輸出來的。後來同事打了個啞謎還有乙個是關係到buffer上的區別,對於這點其實我還是沒有怎麼搞明白,有知道的小夥伴可以來解答下。2.logger.error exception 和logger.er...