前端實現日誌存儲

接手一個需求,要求前端作一個數據監控統計分析平臺,這個就涉及到日誌的存儲分析等功能,經過調研將內容分爲如下幾點:前端

1、環境搭建

爲了節約學習成本,咱們選擇了node做爲後端語言,下一步框架的選擇,提到Node.js開發,不得不提目前煊赫一時的2大框架express和koa。經對比後,Express誕生已有時日,是一個簡潔而靈活的web開發框架,使用簡單而功能強大,生態較爲完善,最終選擇express框架開發。node

2、日誌框架選擇

咱們從這幾個方面來作選型:mysql

1.每行日誌都須要有準確無誤的時間戳web

2.日誌格式容易被計算機進行分析處理sql

3.容許多個可配置的目標流
調研了三個目前比較受歡迎的框架數據庫

clipboard.png

最終咱們以解析存儲日誌爲重要考慮方向,選擇了bunyan。express

安裝(Installation)npm

npm install bunyan --save

使用(Usage)後端

var bunyan= require('bunyan');
var log=bunyan.createLogger({name:'myapp'});
log.info('hi');

輸出:app

{"name":"myapp","hostname":"pwony-2","pid":12616,"level":30,"msg":"hi","time":"2014-05-26T17:58:32.835Z","v":0}

3、存儲方式及內容

1.日誌存儲方式
採用node的fs來進行文件的建立,將日誌存儲在項目的logs_store文件夾下,日誌文件又分爲兩個類型,trace和debug,按日期小時分別存在不一樣的文件夾下,如圖所示。

clipboard.png

2.日誌存儲內容
將請求中的參數,時間戳,user_agent,host等須要的信息存儲下來,格式大體以下:

{

    "time":1553680369929,

    "qs":{

        "action": "click",

        "action_id": "opendetail"

    },

    "host":"127.0.0.1:3000",

    "user-agent":"....."

}

四:存儲數據庫類型選擇

最終選定mysql,沒有其餘緣由,只是由於比較熟悉。

五:展現平臺選擇

有了數據存儲分析等一系列操做,最終如何展現呢?咱們公司正好有一個開放的報表平臺,直接請求數據庫或API便可展現圖標內容,so最後一步就這麼輕鬆搞定啦

相關文章
相關標籤/搜索