目錄
背景
目前工程裏的日誌打印級別比較混亂,本人對日誌等級的區分也不是很清晰。看了一些文章,正好最近在讀《代碼精進之路 從碼農到工匠》,書裏有講日誌規範的問題,把目前的理解記下來。
日誌等級
ERROR
表示不能自己恢復的錯誤,需要立即被關注並解決。對於error級別的日誌,不僅要打印異常堆棧,還要打印上下文信息,用於問題排查。
從治理的角度來講,error級別的日誌是要介入監控和報警的,線上問題要及時處理,儘量減小損失。所以更要規範error級別日誌的使用場景。
WARN
主要用於記錄可預知的業務問題,如參數校驗未通過、鑑權未通過等。
從治理的角度來講,短時間內產生過多的warn日誌,也是要監控和報警的。
INFO
用於記錄系統的基本運行過程及運行狀態。主要包含系統狀態變化、業務流程的核心處理、關鍵動作和業務流程的狀態變化。適當的打印info日誌,可以協助排查問題;過多的info日誌,將成爲日誌閱讀的阻礙。
DEBUG
調試日誌,主要用於開發和測試環境。通過設置系統開啓日誌等級,避免生產環境打印大量調試日誌。
日誌輸出等級設置
日誌等級:error > warn > info > debug
通過設置logging_level,只會輸出大於等於當前限定等級的日誌信息。如設置的是info,則只會打印info、warn、error等級的日誌,debug等級的則不會打印。