1. 程式人生 > >在SpringBoot程式中記錄日誌

在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

不再列印任何資訊