編程日志的等級划分


在不同的版本中日志的分級也有區別,下面以日志記錄器Logger的分類來進行討論

六個日志等級:TRACE / DEBUG / INFO / WARNING / ERROR / FATAL

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

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

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

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

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

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

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


日志輸出的注意事項
1、日志函數的返回值
日志函數的返回值一般用於錯誤的標識,一般為int類型的錯誤碼,因為一個程序出錯情況不止一種,故不建議使用bool類型
正確情況:一般約定正常情況函數的返回值為0;在不同的約定下有可能不同,例如:有多種正確的狀態,不過大多數情況下返回值為0。
錯誤情況:返回值小於0,建議對可預期的錯誤進行編碼,避免所有錯誤千篇一律-1,后續查錯困難
對於錯誤的情況需要記錄相關的錯誤日志

2、如何對日志形式進行選擇
日志有六大類,根據每一類的日志的特性,我們需要在合適的時候選擇相應的日志類型
考慮的因素:
1)輸出頻率
對於輸出頻率高的日志,一定要用TRACE級別,否則會嚴重的影響程序效率
TRACE級別的日志不會輸入到日志文件中,如果該類日志輸出頻率高,使用其他級別,日志文件很快會被寫滿覆蓋。
在for循環或者while循環中的日志,一定要使用TRACE級別。
2)嚴重程度
執行錯誤信息:該情況下書寫日志需要用WARNING級別及以上的ERROR、FATAL日志打印。這類級別的日志會記錄到日志文件中,方便查找問題,解決問題。
非執行錯誤信息: 如調試、追蹤等日志信息,一定采用INFO級別以下的DEBUG、TRACE日志打印 。
INFO級別只適用於輸出頻率不高的情況或者需要記錄到日志文件中,便於問題追憶的需求。

日志信息的內容
1)異常、錯誤信息
ERROR、WARNING等
2)調試、跟蹤信息
函數參數讀入、執行步驟、數據流向,流程跳轉、函數返回值

對於錯誤、異常情況,應盡量記錄盡可能多的“上下文環境”信息.
如果是函數調用失敗,日志中必須包含返回值信息、以及函數調用的相關參數信息。
任何程序在返回錯誤碼前,一定要通過日志記錄具體的錯誤原因,並給出盡量多的場景信息。

 

學習參考自【皓月如我的CSDN博客】https://blog.csdn.net/fm0517/article/details/49928181


免責聲明!

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



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