正確的選擇log級別

2022-01-15 08:08:31 字數 998 閱讀 9255

開發乙個應用,日誌的重要性不言而喻。然而有時會發現日誌中會出現大量的垃圾日誌。所謂垃圾日誌,就是不需要知道的日誌,或者這些日誌對於應用檢視、跟蹤沒有什麼作用。也正是(但不僅僅是)出於這些問題的考量,常用的日誌框架都設定了日誌級別。但是在寫程式時,這些日誌級別該選擇哪一種呢,這點並沒有乙個統一的標準,也沒有人教你怎麼做。下面就來說說我在開發中是怎麼使用這些日誌級別的。

一般來說,日誌級別有以下幾個:

它們的權重從大到小。當我們設定好log級別後,比它權重低的其他log都會被忽略。

不同的語言,不同的庫有不同的log實現,使用方法也比較簡單。但運用好log的關鍵不在庫本身,而是在恰當的地方使用合適的log級別。

在不同的場景下,應該選擇相應的log級別。

fatal(critical)
代表發生了最嚴重的錯誤,會導致整個服務停止(或者需要整個服務停止)。簡單地說就是服務死掉了。

error
代表發生了必須馬上處理的錯誤。此類錯誤出現以後可以允許程式繼續執行,但必須馬上修正,如果不修正,就會導致不能完成相應的業務。

warn
代表存在潛在的錯誤,或者觸發了容易引起錯誤的操作。程式可以繼續執行,但必須多加注意。

info
此輸出級別常用語業務事件資訊。例如某項業務處理完畢,或者業務處理過程中的一些資訊。

此輸出級別也常用於輸出一些對系統有比較大的影響的需要被看到的message,例如資料庫更新,系統傳送了額外的請求等。

debug (或者trace、fine)
此輸出級別用於開發階段的除錯,可以是某幾個邏輯關鍵點的變數值的輸出,或者是函式返回值的驗證等等。

另外,如果是你寫的一些util工具類,在需要加日誌的情況下,也可以使用debug。

如果你寫的是helper(業務的輔助類),這應該算是業務處理相關的,所以應該用info。

Log 日誌級別

日誌記錄器 logger 是日誌處理的核心元件。log4j具有5種正常級別 level 1.static level debug debug level指出細粒度資訊事件對除錯應用程式是非常有幫助的。2.static level info info level表明 訊息在粗粒度級別上突出強調應用程式...

log各種級別

關於log規範 error 所有的捕獲的exception都要使用該級別記錄 對於將導致系統無法繼續正常執行的情況,使用該級別記錄。譬如 字典無法正常load warn 對於一些不影響系統執行的非預期資料或行為,使用該級別記錄。譬如 未找到相應配置項,使用預設值 info 記錄一些系統執行關鍵按狀態...

Log 日誌級別

日誌記錄器 logger 是日誌處理的核心元件。log4j具有5種正常級別 level 1.static level debug debug level指出細粒度資訊事件對除錯應用程式是非常有幫助的。2.static level info info level表明 訊息在粗粒度級別上突出強調應用程式...