本文主要梳理了在nodejs開發中日誌方面存在的問題,以及通過統一日誌規範,希望達到什麼樣的效果。
現在大部分小團隊使用node去做服務端開發,都或多或少存在以下問題:
為了方便檢視和統計,我們制定了以下目標:
日誌型別
日誌級別
只使用 fatal、error、warn、info 和 debug 等級。
日誌格式/字段
日誌格式統一採用json,便於 elk 解析處理。
日誌中的各個欄位的值,都應該盡量使用英文,不使用中文。
日誌具體字段,分為 基礎資料 + 擴充套件資料。基礎資料,是底層日誌框架自帶的,所有日誌都會包含。擴充套件資料,不同型別的日誌,包含不同的字段。
日誌基礎資料
目前使用的 node-bunyan 日誌庫,官方文件,基礎字段包含如下:
日誌擴充套件資料
下面定義的各個資料型別的擴充套件資料,不是全部的字段,僅包含該日誌型別下,必需的字段。這些必需的擴充套件字段,需要在 elk 中建立索引,方便定位各種問題。
desc型別日誌,擴充套件字段:todo
stat型別日誌,擴充套件字段: }
visit型別日誌,擴充套件字段:
biz
{ / 基礎資料 v: 1, level: 20, / 擴充套件字段 // 標誌日誌型別 scope: "visit
SVN軟體開發日誌規範
前言 寫 的好習慣除了言簡意賅的注釋外,還有完善且必要的日誌。注釋主要是對 內的模組或功能函式 演算法 邏輯框架等進行必要簡明的說明,它關注的是 這個 裡做了什麼。而日誌需要說明的是這版 和上一版本改了什麼 重點關注 的公升級迭代 用途 風險 和其他 有啥關係 比如關注是否某些功能模組借鑑或移植於其...
需要注意的開發規範和習慣
這兩個都需要列印出來,經常提醒自己類變數 以下劃線開始 區域性變數 在使用前申明。類名 只做一件事 根據職責劃分 介面 以i開頭,或者形容詞結尾,如runnable 異常處理 使用 throw,異常 if 條件 如果忽略了增加注釋為什麼 演算法 某種策略的的條件和權衡 父類 protected 描述...
web前端開發也需要日誌
web前端開發過程中除錯是乙個不可避免的過程,我們有眾多的瀏覽器可供選擇,但是如果您要除錯的平台瀏覽器不是那麼先進呢,如ie6,在他上面還不那麼富饒,給程式除錯帶來的很大的痛苦啊,所以日誌即時輸出是乙個不錯的選擇,可以知道程式覆蓋到了 即是在先進的瀏覽器上也是很有必要的,他比去除錯程式來確定相應的業...