一般前端開發(fā)同學(xué),對日志其實不太敏感,畢竟前端大多數(shù)情況下,不太關(guān)心日志。即使有,也可能調(diào)用一些第三方的統(tǒng)計,比如百度統(tǒng)計或者別的等。在 Node.js(下文中簡稱node) 推進(jìn)過程中,也發(fā)現(xiàn)我們平常打日志太隨意,該打的日志沒有打,打的一些關(guān)鍵日志缺少必要上下文信息,導(dǎo)致在線上定位問題的時候很困難。
本文主要梳理了目前我們團(tuán)隊在nodejs開發(fā)中日志方面存在的問題,以及通過統(tǒng)一日志規(guī)范,希望達(dá)到什么樣的效果。
問題
目標(biāo)
實現(xiàn)方案
日志類型
參考一些日志的最佳實踐,目前將node日志分為如下幾種類型(scope):
日志級別
只使用 FATAL、ERROR、WARN、INFO 和 DEBUG 等級。
日志格式/字段
日志基礎(chǔ)數(shù)據(jù)
目前使用的 node-bunyan 日志庫,官方文檔,基礎(chǔ)字段包含如下:
日志擴(kuò)展數(shù)據(jù)
下面定義的各個數(shù)據(jù)類型的擴(kuò)展數(shù)據(jù),不是 全部的字段,僅包含該日志類型下,必需的字段。這些必需的擴(kuò)展字段,需要在 ELK 中建立索引,方便定位各種問題。
{ ///////////// 基礎(chǔ)數(shù)據(jù) //////// v: 1, level: 20, ///////////// 擴(kuò)展字段 //////// // 標(biāo)志日志類型 scope: "visit", //事件類型:在 visit 的日志類型下,還會細(xì)分不同的事件,比如 client-req、client-res、 普通trace、請求后端service-start, service-end, service-err等。 event: "trace", //客戶端ID,追蹤用戶、設(shè)備會話。在web端,可以是長期的cookie;在APP端,可以是device-id等 rrdid: "", //本次請求的惟一ID,串聯(lián)本次請求的所有相關(guān)日志 req_id: "some-uuid-for-request", //本次請求的用戶ID uid: "", //本次請求的客戶端相關(guān)數(shù)據(jù),通過 ctx.logger 打日志時,自動加上 d: { url: "/some/path?include-query", //客戶端ip ip: "10.138.10.1", //客戶端的 userAgent ua: "" }, //本次node請求的處理時間,毫秒 tm: 500, //該日志相關(guān)的上下文數(shù)據(jù),盡量拼成一個字符串,放在 extra 里 extra: "", //ERROR 級別日志,最好包含error相關(guān)信息,比如請求后端相關(guān)參數(shù)等 err: { msg: "", stack: "" }, //調(diào)用后端服務(wù)相關(guān)參數(shù)和響應(yīng) service_req: { host: "", path: "", payload: "" }, service_res: { //http狀態(tài)碼 http_code: 200, //響應(yīng)時間 tm: 100, //響應(yīng)的body body: "", //異常信息 err: "" } }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前名稱:Node.js+ELK日志規(guī)范的實現(xiàn)-創(chuàng)新互聯(lián)
分享路徑:http://jinyejixie.com/article40/dpdcho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站導(dǎo)航、App設(shè)計、微信公眾號、移動網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容