背景
日誌重要性不言而喻:
- 快速定位和重現問題
 - 發現服務瓶頸(服務耗時,當然這一部分也可以通過其他無入侵式監控方式實現)
 
日誌分類
| 分類 | 說明 | @cols=1:一般面向人員 | 
|---|---|---|
| 診斷日誌 | 
  | 
@cols=1:服務開發者 | 
| 統計日誌 | 
  | 
@cols=1:運維 | 
日誌內容
原則
目前只針對診斷日誌做說明
| 原則 | 說明 | 
|---|---|
| 開始輸入參數 | 方便重現問題 | 
| 結束輸出參數 | 判斷是否符合預期 | 
| 中間關鍵變量變化 | 儘量保證一個函數一個職責,減少中間變量 | 
| 不可達代碼打印記錄 | 方便查找bug | 
| 避免打印日誌引入異常 | 比如: null引用,一般框架會自帶處理 | 
| logging | 對於不需要輸出的日誌(DEBUG)所做的操作,避免性能損耗,比如說字符串拼接 | 
| 設置【日誌等級】 | 生產環境關閉debug日誌,避免浪費磁盤和大量日誌干擾問題的定位 | 
| 不要打印敏感信息 | 用戶密碼,key之類的 | 
| 打印捕獲異常日誌 | 方便知道異常信息 | 
格式
【時間】,【 等級】, 【traceId/clusterId】,【module/function】 【action】, 【changed value/arguments】 (5W1H)