一、概述
1、採用slf4j作為日誌API,採用logback作為日誌輸出工具,用slf4j橋接方式替換掉log4j和commons-logging。
2、採用trace(追蹤)、debug(調試)、info(資訊)、warn(警告)、error(錯誤)、fatal(致命)共6種記錄層級。
3、採用dev(開發環境)、test(測試環境)、production(生產環境)等不同的日誌配置,根據環境變數自動識別。
4、特殊的記錄,需要大批量寫入記錄檔,應該採用非同步線程寫檔案。
二、記錄層級定義
採用trace(追蹤)、debug(調試)、info(資訊)、warn(警告)、error(錯誤)、fatal(致命)共6種記錄層級。
記錄層級使用原則:
1、fatal(致命錯誤)使用原則
fatal為系統層級的異常,發生fatal錯誤,代表格服務器整個或者核心功能已經無法工作了。。
1)在伺服器啟動時就應該檢查,如果存在致命錯誤,直接拋異常,讓伺服器不要啟動起來(啟動了也無法正常工作,不如不啟動)。
2)如果在伺服器啟動之後,發生了致命的錯誤,則記錄fatal層級的錯誤記錄檔,最好是同時觸發相關的修複和警示工作(比如,給開發和維護人員發送警示郵件)。
2、error(錯誤)使用原則
error為功能或者邏輯層級的嚴重異常,發生error層級的異常,代表功能或者重要邏輯遇到問題、無法正常工作。
3、warn(警告)使用原則
warn用在某些邏輯非常規,發生了一些小故障但是沒有大的影響,或者重要資料被修改,或者某些操作需要引起重視。
4、info(資訊)使用原則
info用於記錄一些有用的、關鍵的資訊,一般這些資訊出現得不頻繁,只是在初始化的地方或者重要操作的地方才記錄。
5、debug(調試)使用原則
debug用於記錄一些調試資訊,為了方便查看程式的執行過程和相關資料、瞭解程式的動態。
6、trace(跟蹤)使用原則
trace用於記錄一些更詳細的調試資訊,這些資訊無需每次調試時都列印出來,只在需要更詳細的調試資訊時才開啟。
7、項目穩定運行時的日誌量
1)正常情況下,trace日誌至少是debug日誌的100倍,
trace層級的日誌量 : debug層級的日誌量 > 100 : 1,
也就是說trace日誌非常多,debug日誌相對較少。
2)debug層級的日誌量 : info層級的日誌量 > 1000 : 1,
也就是說正常情況下,info日誌很少,只在部分重要位置會輸出 info日誌。
3)error日誌和warn日誌,正常情況下,幾乎為0,當出現異常時,error日誌和warn日誌量 也在可控範圍,不會超過debug層級的最大日誌量。
三、日誌輸出(Appender)分類
分為5個一般類:
FILE_EXCEPTION (異常日誌,包括ERROR和WARN)
FILE_APP (應用日誌,包括當前應用package下面的日誌和DEBUG層級以上的其他日誌)
FILE_INFO (普通訊息日誌)
FILE_DEBUG (調試日誌)
FILE_TRACE(追蹤日誌)
SYSOUT(控制台輸出,可以包括以上所有日誌)
擴充類: 包括非同步輸出的日誌,或者特殊業務日誌。
舉例說明:
假如
當前應用的 Main Package 為 cn.zollty.lightning
ROOT_LEVEL為 trace,應用日誌 LEVEL 為 debug
有以下日誌列印:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 |
|