日志等級及使用情形


在不同的版本中日志的分級也有區別,下面以日志記錄器Logger的分類來進行討論
六個日志等級:TRACE DEBUG INFO WARNING ERROR FATAL

還有兩個特殊等級 ALL、OFF,全部日志打開和關閉,這里不做討論

(1)TRACE

TRACE 在線調試。
該級別日志,默認情況下,既不打印到終端也不輸出到文件。此時,對程序運行效率幾乎不產生影響。

(2)DEBUG

DEBUG 終端查看、在線調試。
該級別日志,默認情況下會打印到終端輸出,但是不會歸檔到日志文件。因此,一般用於開發者在程序當前啟動窗口上,查看日志流水信息。

(3)INFO

INFO 報告程序進度和狀態信息。
一般這種信息都是一過性的,不會大量反復輸出。
例如:連接商用庫成功后,可以打印一條連庫成功的信息,便於跟蹤程序進展信息。

(4)WARNING

WARNING 警告信息
程序處理中遇到非法數據或者某種可能的錯誤。
該錯誤是一過性的、可恢復的,不會影響程序繼續運行,程序仍處在正常狀態。

(5)ERROR

ERROR 狀態錯誤
該錯誤發生后程序仍然可以運行,但是極有可能運行在某種非正常的狀態下,導致無法完成全部既定的功能。

(6)FATAL

FATAL 致命的錯誤
表明程序遇到了致命的錯誤,必須馬上終止運行。

Log4j建議只使用四個級別,優先級從高到低分別是 ERROR、WARN、INFO、DEBUG。通過在這里定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。比如配置成了INFO級別,則應用程序中所有DEBUG級別的日志信息將不被打印出來,也是說大於等於的級別的日志才輸出。



日志輸出考慮的因素:

1)輸出頻率

對於輸出頻率高的日志,一定要用TRACE級別,否則會嚴重的影響程序效率

TRACE級別的日志不會輸入到日志文件中,如果該類日志輸出頻率高,使用其他級別,日志文件很快會被寫滿覆蓋。

在for循環或者while循環中的日志,一定要使用TRACE級別。

2)嚴重程度

執行錯誤信息:該情況下書寫日志需要用WARNING級別及以上的ERROR、FATAL日志打印。這類級別的日志會記錄到日志文件中,方便查找問題,解決問題。

非執行錯誤信息: 如調試、追蹤等日志信息,一定采用INFO級別以下的DEBUG、TRACE日志打印 。

INFO級別只適用於輸出頻率不高的情況或者需要記錄到日志文件中,便於問題追憶的需求。

 

日志信息的內容:

1)異常、錯誤信息

ERROR、WARNING等

2)調試、跟蹤信息

函數參數讀入、執行步驟、數據流向,流程跳轉、函數返回值

對於錯誤、異常情況,應盡量記錄盡可能多的“上下文環境”信息.

如果是函數調用失敗,日志中必須包含返回值信息、以及函數調用的相關參數信息。

任何程序在返回錯誤碼前,一定要通過日志記錄具體的錯誤原因,並給出盡量多的場景信息。


工作筆記:

1.JSON解析要有try – catch    (fastjson 解析出錯會有異常)
2.網絡請求要有URL地址和花費時間LOG
3.重要函數要有進出LOG
4.重要函數要有try和花費時間LOG
5.所有catch到的異常都要有LOG輸出
6.服務入口函數要有總花費時間LOG
重要:LOG要注意LOG等級,壓測、上線、調試分別用不同的日志等級,避免壓測時LOG過多導致TPS受影響或線上LOG過多影響響應時間。


參考博客:

(1)編程日志的等級划分

(2)Log日志級別從高到低排序 ERROR、WARN、INFO、DEBUG






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM