日誌級別 日誌級別記錄規範

2021-10-16 04:53:48 字數 3018 閱讀 2773

之前看了網上發的日誌級別的使用規範和「日誌管理與分析權威指南」裡面的日誌級別規範和說明,具體內容如下。

log4j定義了8個級別的log(除去off和all,可以說分為6個級別),優先順序從高到低依次為:off、fatal、error、warn、info、debug、trace、 all。

「all」: 最低等級的,用於開啟所有日誌記錄。

「trace」: designates finer-grained informational events than the debug.since:1.2.12,很低的日誌級別,一般不會使用。

「debug」:  指出細粒度資訊事件對除錯應用程式是非常有幫助的,主要用於開發過程中列印一些執行資訊。

「info」: 訊息在粗粒度級別上突出強調應用程式的執行過程。列印一些你感興趣的或者重要的資訊,這個可以用於生產環境中輸出程式執行的一些重要資訊,但是不能濫用,避免列印過多的日誌。

「warn」: 表明會出現潛在錯誤的情形,有些資訊不是錯誤資訊,但是也要給程式設計師的一些提示。

「error」: 指出雖然發生錯誤事件,但仍然不影響系統的繼續執行。列印錯誤和異常資訊,如果不想輸出太多的日誌,可以使用這個級別。

「fatal」: 指出每個嚴重的錯誤事件將會導致應用程式的退出。這個級別比較高了。重大錯誤,這種級別你可以直接停止程式了。

「off」:  最高等級的,用於關閉所有日誌記錄。

如果將log level設定在某乙個級別上,那麼比此級別優先順序高的log都能列印出來。例如,如果設定優先順序為warn,那麼off、fatal、error、warn4個級別的log能正常輸出,而info、debug、trace、 all級別的log則會被忽略。log4j建議只使用四個級別,優先順序從高到低分別是error、warn、info、debug。

表示需要立即被處理的系統級錯誤。當該錯誤發生時,表示服務已經出現了某種程度的不可用,系統管理員需要立即介入。

這屬於最嚴重的日誌級別,因此該日誌級別必須慎用,如果這種級別的日誌經常出現,則該日誌也失去了意義。

通常情況下,乙個程序的生命週期中應該只記錄一次fatal級別的日誌,即該程序遇到無法恢復的錯誤而退出時。

當然,如果某個系統的子系統遇到了不可恢復的錯誤,那該子系統的呼叫方也可以記入fatal級別日誌,以便通過日誌報警提醒系統管理員修復。

錯誤日誌是用來傳遞系統或應用程式**現的各種級別的錯誤。例如,作業系統在無法同步快取區到磁碟的時候會生成錯誤資訊。不確定的是,許多錯誤資訊只能給出為什麼出錯的起點,要尋找出導致錯誤發生的根本原因還需要進一步分析。

該級別的錯誤也需要馬上被處理,但是緊急程度要低於fatal級別。當error錯誤發生時,已經影響了使用者的正常訪問。從該意義上來說,實際上error錯誤和fatal錯誤對使用者的影響是相當的。

fatal相當於服務已經掛了,而error相當於好死不如賴活著,然而活著卻無法提供正常的服務,只能不斷地列印error日誌。

特別需要注意的是,errorfatal都屬於伺服器自己的異常,是需要馬上得到人工介入並處理的情況。而對於使用者自己操作不當,如請求引數錯誤等等,是絕對不應該記為error日誌的。

警告資訊是在系統即將丟失東西,而又不影響系統執行下而產生的,例如乙個應用程式在沒有獲得正確數量的引數傳遞的時候,但是它又能夠在沒有這些引數的情況下正常執行,這種情況下可能就是記錄警告資訊提示使用者或者管理員。

該日誌表示系統可能出現問題,也可能沒有問題,這種情況在例如網路的波動等情況。對於那些目前還不是錯誤,然而不及時處理也會變為錯誤的情況,也可以記為warn日誌,例如乙個儲存系統的磁碟使用量超過閥值,或者系統中某個使用者的儲存配額快用完等等。

對於warn級別的日誌,雖然不需要系統管理員馬上處理,也是需要即時檢視並處理的。因此此種級別的日誌也不應太多,能不打warn級別的日誌,就盡量不要打。

這種型別的資訊被設計成告訴使用者或者開發者一些沒有風險的事情發生了。該種日誌記錄系統正常執行狀態,例如某個子系統的初始化,某個請求的成功執行等等。

通過檢視info級別的日誌,可以很快地對系統**現的warn,error,fatal錯誤進行定位。info日誌不宜過多,通常情況下,info級別的日誌應該不大於trace日誌的10%。

軟體系統在應用程式**執行時生成的調式資訊,是為了給軟體開發人員提供故障檢測和定位問題的幫助。

這兩種日誌具體的規範應該由專案組自己定義,該級別日誌的主要作用是對系統每一步的執行狀態進行精確的記錄。

通過該種日誌,可以檢視某乙個操作每一步的執行過程,可以準確定位是何種操作,何種引數,何種順序導致了某種錯誤的發生。可以保證在不重現錯誤的情況下,也可以通過debug(或trace)級別的日誌對問題進行診斷。

需要注意的是,debug日誌也需要規範日誌格式,應該保證除了記錄日誌的開發人員自己外,其他的如運維,測試人員等也可以通過debug(或trace)日誌來定位問題。

python日誌級別參考:  

linux系統日誌級別參考:

log4j的日誌級別記錄

不進行優先順序的繼承,乙個級別乙個檔案 log4j.properties 設定 log4j.rootlogger debug,stdout,d,e,i 輸出資訊到控制抬 輸出debug 級別以上的日誌到 e logs error.log 輸出error 級別以上的日誌到 e logs error.l...

Log4j分級別記錄日誌檔案

log4j分級別記錄日誌檔案 在記錄日誌的時候通常我們都希望不同級別的日誌能夠分別記錄在不同的日誌檔案中,然後有乙個彙總的日誌檔案記錄所有的日誌資訊,因為在大多數情況下我們可能只會關注那些 error 級別的日誌資訊。利用 log4j 去記錄這些資訊是比較簡單的,我們可以配置多個不同的 然後每個 對...

Log4j分級別記錄日誌檔案

log4j分級別記錄日誌檔案 指定預設情況下的日誌輸出級別為 info 對應的 為stdout info warn error 和fatal log4j.rootlogger info,stdout info,warn,error,fatal org.apache.log4j.patternlayo...