在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
不再列印任何資訊