在SpringBoot程序中記錄日誌
所有的項目都會有日誌,日誌文件是用於記錄系統操作事件的記錄文件或文件集合,可分為事件日誌和消息日誌。具有處理歷史數據、診斷問題的追蹤以及理解系統的活動等重要作用。這節描述如何用springboot記錄日誌。
記錄日誌的方法
一般記錄日誌的方法有兩種
- Commons-logging:
private static final Log log = logFactory.getLog(Xxxxxx.class);
- SLF4J:
private static final Logger logger = logFactory.getLogger(Xxxxxx.class);
這兩種方法其實都差不多,它們定義log/logger的方法也差不多...
日誌級別
日誌級別共八級,一般我們用到的日誌只有中間四級,下面簡單介紹一下
ALL < TEACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
ALL 最低等級的,用於打開所有日誌記錄。
TRACE 很低的日誌級別,一般不會使用。
DEBUG 指出細粒度信息事件對調試應用程序是非常有幫助的,主要用於開發過程中打印一些運行信息。
INFO 消息在粗粒度級別上突出強調應用程序的運行過程。打印一些你感興趣的或者重要的信息,這個可以用於生產環境中輸出程序運行的一些重要信息,但是不能濫用,避免打印過多的日誌。
WARN
ERROR 指出雖然發生錯誤事件,但仍然不影響系統的繼續運行。打印錯誤和異常信息,如果不想輸出太多的日誌,可以使用這個級別。
FATAL 指出每個嚴重的錯誤事件將會導致應用程序的退出。這個級別比較高了。重大錯誤,這種級別你可以直接停止程序了。
OFF 最高等級的,用於關閉所有日誌記錄。
如果將log level設置在某一個級別上,那麽比此級別優先級高的log都能打印出來。例如,如果設置優先級為WARN,那麽OFF、FATAL、ERROR、WARN 4個級別的log能正常輸出,而INFO、DEBUG、TRACE、 ALL級別的log則會被忽略。Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。
log4j默認的優先級為ERROR
(以上轉自shiyonghm的博客)
application.yml配置日誌
把下面這段代碼copy進去就可以了,但最後一行的com.example是需要改一改的,改成你自己的項目結構目錄即可。
logging:
file: target/app.log
level:
ROOT: WARN
com.example: TRACE
我這裏設置打印了5個等級的信息
再次運行,發現日誌等級高於等於TRACE的信息已被打印出來
若設置為
logging:
file: target/app.log
level:
ROOT: WARN
com.example: INFO
再次運行後,發現低於INFO等級的信息都已不再打印
若設置為OFF
logging:
file: target/app.log
level:
ROOT: WARN
com.example: OFF
不再打印任何信息
在SpringBoot程序中記錄日誌