程式設計日誌的等級劃分

2022-04-17 10:21:12 字數 1491 閱讀 2977

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

六個日誌等級:trace / debug / info / warning / error / fatal

還有兩個特殊等級 all、off,全部日誌開啟和關閉,這裡不做討論

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部落格】

缺陷的等級劃分

a類 嚴重錯誤,包括以下各種錯誤 1 由於程式所引起的宕機 非法退出 2 死迴圈 3 資料庫發生死鎖 4 因錯誤操作導致的程式中斷 5 功能錯誤 6 與資料庫連線錯誤 7 資料通訊錯誤 b類 較嚴重錯誤,包括以下各種錯誤 1 程式錯誤 2 程式介面錯誤 3 資料庫的表 業務規則 預設值未加完整性等約...

缺陷的等級劃分

a類 嚴重錯誤,包括以下各種錯誤 1 由於程式所引起的宕機 非法退出 2 死迴圈 3 資料庫發生死鎖 4 因錯誤操作導致的程式中斷 5 功能錯誤 6 與資料庫連線錯誤 7 資料通訊錯誤 b類 較嚴重錯誤,包括以下各種錯誤 1 程式錯誤 2 程式介面錯誤 3 資料庫的表 業務規則 預設值未加完整性等約...

CMMI等級劃分

l1 cmmi一級,完成級。在完成級水平上,企業對專案的目標與要做的努力很清晰。專案的目標得以實現。因此,任務是完成了。但是由於任務的完成帶有很大的偶然性,企業無法保證在實施同類專案的時候仍然能夠完成任務。企業在一級上的專案實施對實施人員有很大的依賴性。l2 cmmi二級,管理級。在管理級水平上,企...