Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

时间:2024-03-19 17:45:42

一、安装环境

1.1、安装log4js

npm install log4js --save-dev


 

二、数据库建表、Nodejs建模型、生成日期日志文件等

2.1、【数据库建表】数据库使用的是mongodb,根据具体情况建表,建立了一个log日志表,字段如下(因为mongodb默认是_id,区别于mysql,所以自己手动添加id字段,为了页面排序、分页操作等)

"id" 、"name"【用户名】 、"detail"【细节说明】 、"address"【具体请求接口】 、  "create_time"【创建时间】 、"update_time"【更新时间】

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

2.2、【Nodejs建模型】,建模文件中,封装了connectionTable函数,便于操作

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

2.3、【封装log4.js文件】,规定生成日志文件的格式、封装加载log4js中间件函数,参考log4js官网

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

 

2.4、【调用log4js中间件】,即启动服务器的文件,引入log4.js

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)


 

三、查询日志接口:

需要在调用读取日志列表接口之前,读取对应日期的日志文件,并写入到对应数据表中(需求】:查询指定日期的日志;【思路】:每次读取之前,将日志表清空,然后存储对应日期日志文件,到日志表中;【难点】:a、手动增加对应的id;b、根据每一条日志的token值,获取用户表的用户名<待完善功能:若用户退出登录,获取不到之前的token值,即用户名获取不到>


3.1、首先看一下引入的中间件咯

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

 

3.2、【查询接口】调用获取日志文件的函数(其中获取了对应的日志文件,再存储到日志表中<注意:首先清空日志表>

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

3.3、【重点】这是困扰我的地方,首先是id根据每行添加对应值(但是数据库操作是异步的,后来就改成了用数组遍历增加);然后是根据每行的token值,去数据库中查询对应的用户名name(但是数据库操作是异步的!!后来也是通过数组遍历的方式,逐个添加对应的用户名name,详情请看下面代码图hhh)

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

【注意】,以下略微修改了

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

【注意】最后一定要执行next()回调函数

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)

Nodejs+Log4js日志的使用(环境:Vue+Node.js+Mongodb)


 

【总结】

1、日志管理主要用到了中间件log4js,然后根据对应格式,存储对应的日志文件

2、读取日志文件,并将日志文件信息,存储到数据库对应的日志表中(其中注意id和token的赋值)

3、调用查询日志接口,调用之前调用第2步的函数

4、具体代码,之后会上传github

写给自己的随笔,有问题欢迎指出ᕦ(・ㅂ・)ᕤ