前端实现日志存储

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

一、环境搭建

为了节约学习成本,我们选择了node作为后端语言,下一步框架的选择,提到Node.js开发,不得不提目前炙手可热的2大框架express和koa。经对比后,Express诞生已有时日,是一个简洁而灵活的web开发框架,使用简单而功能强大,生态较为完善,最终选择express框架开发。

二、日志框架选择

我们从这几个方面来做选型:

1.每行日志都需要有准确无误的时间戳

2.日志格式容易被计算机进行分析处理

3.允许多个可配置的目标流
调研了三个目前比较受欢迎的框架

前端实现日志存储

最终我们以解析存储日志为重要考虑方向,选择了bunyan。

安装(Installation)

npm install bunyan --save

使用(Usage)

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

输出:

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

三、存储方式及内容

1.日志存储方式
采用node的fs来进行文件的创建,将日志存储在项目的logs_store文件夹下,日志文件又分为两个类型,trace和debug,按日期小时分别存在不同的文件夹下,如图所示。

前端实现日志存储

2.日志存储内容
将请求中的参数,时间戳,user_agent,host等需要的信息存储下来,格式大致如下:

{

    "time":1553680369929,

    "qs":{

        "action": "click",

        "action_id": "opendetail"

    },

    "host":"127.0.0.1:3000",

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

}

四:存储数据库类型选择

最终选定mysql,没有其他原因,只是因为比较熟悉。

五:展示平台选择

有了数据存储分析等一系列操作,最终如何展示呢?我们公司正好有一个开放的报表平台,直接请求数据库或API即可展示图标内容,so最后一步就这么轻松搞定啦

相关推荐