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

在SpringBoot程序中記錄日誌

xxxx logger xxxxx 生產環境 factor 介紹 err png 診斷

所有的項目都會有日誌,日誌文件是用於記錄系統操作事件的記錄文件或文件集合,可分為事件日誌和消息日誌。具有處理歷史數據、診斷問題的追蹤以及理解系統的活動等重要作用。這節描述如何用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程序中記錄日誌