日誌記錄規範

2021-07-25 07:21:35 字數 1936 閱讀 5817

乙個專案各個log級別的定義應該是清楚明確的,是每個開發人員所遵循的; 即使是trace或者debug級別的日誌,也應該有一定的規範,要保證除了開發人員自己以外,包括測試人員和運維人員都可以方便地通過日誌定位問題; 對於日誌級別的分類,有以下參考:

fatal — 表示需要立即被處理的系統級錯誤。當該錯誤發生時,表示服務已經出現了某種程度的不可用,系統管理員需要立即介入。這屬於最嚴重的日誌級別,因此該日誌級 別必須慎用,如果這種級別的日誌經常出現,則該日誌也失去了意義。通常情況下,乙個程序的生命週期中應該只記錄一次fatal級別的日誌,即該程序遇到無 法恢復的錯誤而退出時。當然,如果某個系統的子系統遇到了不可恢復的錯誤,那該子系統的呼叫方也可以記入fatal級別日誌,以便通過日誌報警提醒系統管 理員修復;

error — 該級別的錯誤也需要馬上被處理,但是緊急程度要低於fatal級別。當error錯誤發生時,已經影響了使用者的正常訪問。從該意義上來說,實際上 error錯誤和fatal錯誤對使用者的影響是相當的。fatal相當於服務已經掛了,而error相當於好死不如賴活著,然而活著卻無法提供正常的服 務,只能不斷地列印error日誌。特別需要注意的是,error和fatal都屬於伺服器自己的異常,是需要馬上得到人工介入並處理的。而對於使用者自己 操作不當,如請求引數錯誤等等,是絕對不應該記為error日誌的;

warn — 該日誌表示系統可能出現問題,也可能沒有,這種情況如網路的波動等。對於那些目前還不是錯誤,然而不及時處理也會變為錯誤的情況,也可以記為warn日 志,例如乙個儲存系統的磁碟使用量超過閥值,或者系統中某個使用者的儲存配額快用完等等。對於warn級別的日誌,雖然不需要系統管理員馬上處理,也是需要 即使檢視並處理的。因此此種級別的日誌也不應太多,能不打warn級別的日誌,就盡量不要打;

info — 該種日誌記錄系統的正常執行狀態,例如某個子系統的初始化,某個請求的成功執行等等。通過檢視info級別的日誌,可以很快地對系統中出現的 warn,error,fatal錯誤進行定位。info日誌不宜過多,通常情況下,info級別的日誌應該不大於trace日誌的10%;

debug or trace — 這兩種日誌具體的規範應該由專案組自己定義,該級別日誌的主要作用是對系統每一步的執行狀態進行精確的記錄。通過該種日誌,可以檢視某乙個操作每一步的執 行過程,可以準確定位是何種操作,何種引數,何種順序導致了某種錯誤的發生。可以保證在不重現錯誤的情況下,也可以通過debug(或trace)級別的 日誌對問題進行診斷。需要注意的是,debug日誌也需要規範日誌格式,應該保證除了記錄日誌的開發人員自己外,其他的如運維,測試人員等也可以通過 debug(或trace)日誌來定位問題;

日誌從功能來說,可分為診斷日誌、統計日誌、審計日誌。

診斷日誌, 典型的有:

請求入口和出口 外部服務呼叫和返回 資源消耗操作: 開啟檔案等 容錯行為: 譬如雲硬碟的副本修復操作 程式異常: 譬如資料庫無法連線 後台操作:清理程式 啟動、關閉、配置載入 丟擲異常時,不記錄日誌

統計日誌:

使用者訪問統計 計費日誌(如記錄使用者使用的網路資源或磁碟占用,格式較為嚴格,便於統計)

審計日誌:

管理操作 將不同需求的日誌記入到不同的日誌檔案中,可以方便相關問題(管理平台操作審計,使用者操作計費等)的處理。針對每一種需求,需要對日誌的格式,日誌記錄的內容等進行特別的記錄。

需要在日誌中記錄的內容有:

在系統啟動或初始化時記錄重要的系統初始化引數 記錄系統執行過程中的所有的錯誤 記錄系統執行過程中的所有的警告 在持久化資料修改時記錄修改前和修改後的值 記錄系統各主要模組之間的請求和響應 重要的狀態變化(如使用者諮詢狀態改變等) 系統中一些長期執行的任務的執行進度

測試日誌應該包含以下內容:

測試執行的環境 測試執行前的初始狀態 測試的詳細步驟 測試和系統的互動資訊 測試期望的返回結果 測試實際的返回結果

2015/12/24 16:09:49

日誌規範實施記錄

日誌規範 1.修改配置檔案及建立資料夾 cat createlogdir.sh bin bash confdir 1 logdir data wwwlogs 遍歷配置檔案建立日誌目錄 for file in ls 1 grep v bak grep v back grep v tar dofilef...

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

之前看了網上發的日誌級別的使用規範和 日誌管理與分析權威指南 裡面的日誌級別規範和說明,具體內容如下。log4j定義了8個級別的log 除去off和all,可以說分為6個級別 優先順序從高到低依次為 off fatal error warn info debug trace all。all 最低等級...

日誌記錄到字段變更 nodejs 日誌規範

本文主要梳理了目前我們團隊在nodejs開發中日誌方面存在的問題,以及通過統一日誌規範,希望達到什麼樣的效果。只使用fatal error warn info和debug等級。fatal 導致程式退出的嚴重系統級錯誤,不可恢復,當錯誤發生時,系統管理員需要立即介入,一般應用 不使用。error 執行...