前端实现日志存储

接手一个需求,要求前端作一个数据监控统计分析平台,这个就涉及到日志的存储分析等功能,经过调研将内容分为如下几点:前端

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最后一步就这么轻松搞定啦

相关文章
相关标签/搜索