使用koa-log4管理nodeJs日志笔记的使用方法


Posted in NodeJs onNovember 30, 2018

前言

对于后端程序应用来说,日志是必不可少的,在nodeJs当中并没有自带的日志模块。最近正好使用koa框架来做后端服务,需要对日志进行分割处理,特记录下分享给大家。

一.后端代码目录结构

├── back-end
│ ├── logs 所有产生的日志文件存放在此目录下
│ ├── db.js 使用Sequelize连接数据库
│ ├── logger.js 日志的配置
│ ├── server.js 后端提供的所有接口

二.引用日志模块

log4js-node是一款比较好的在node环境下对于日志处理的模块,由于我的整个项目是基于koa框架,所以我选择了koa-log4模块。

koa-log4在log4js-node的基础上做了一次包装,是koa的一个处理日志的中间件,此模块可以帮助你按照你配置的规则分叉日志消息。

三.日志配置logger.js

koa-log4的配置与log4js-node是一样的。

const path = require('path');
const log4js = require('koa-log4');

log4js.configure({
 appenders: {
  access: {
   type: 'dateFile',
   pattern: '-yyyy-MM-dd.log', //生成文件的规则
   filename: path.join('back-end/logs/', 'access.log') //生成文件名
  },
  application: {
   type: 'dateFile',
   pattern: '-yyyy-MM-dd.log',
   filename: path.join('back-end/logs/', 'application.log')
  },
  out: {
   type: 'console'
  }
 },
 categories: {
  default: { appenders: [ 'out' ], level: 'info' },
  access: { appenders: [ 'access' ], level: 'info' },
  application: { appenders: [ 'application' ], level: 'WARN'}
 }
});

exports.accessLogger = () => log4js.koaLogger(log4js.getLogger('access')); //记录所有访问级别的日志
exports.logger = log4js.getLogger('application'); //记录所有应用级别的日志

四.日志的使用方法

1.访问日志

对于日志的使用,访问级别的,记录用户的所有请求,作为koa的中间件,直接使用便可,如下:

const Koa = require('koa');
const KoaRouter = require('koa-router');
const app = new Koa();
const router = new KoaRouter();
const { logger, accessLogger } = require('./logger');
const router = new KoaRouter();

app.use(accessLogger());

2.应用日志

应用级别的日志,可记录全局状态下的error,也可记录接口请求当中的错误处理。

捕获全局状态下的error

app.on('error', err => {
 logger.error(err);
});

接口请求错误

router.post('/test',async (ctx, next)=>{
 //处理代码
 }catch(e){
  logger.error(e);
  ctx.body = {status:-1, message:e.message};
 }
});

五.自动生成日志

开启node应用对于每一次的请求,都将按日期来生成日志文件,以下是我这几天自动生成的日志文件

使用koa-log4管理nodeJs日志笔记的使用方法

六.日志内容分析

日志文件当中都有详细的记录

使用koa-log4管理nodeJs日志笔记的使用方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs导出excel的方法
Jun 30 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
nodejs前端自动化构建环境的搭建
Jul 26 NodeJs
nodejs 最新版安装npm 的使用详解
Jan 18 NodeJs
nodejs异步编程基础之回调函数用法分析
Dec 26 NodeJs
nodejs基础之常用工具模块util用法分析
Dec 26 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 NodeJs
Nodejs 数组的队列以及forEach的应用详解
Feb 25 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 #NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 #NodeJs
详解从NodeJS搭建中间层再谈前后端分离
Nov 13 #NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 #NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 #NodeJs
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
Nov 01 #NodeJs
nodejs中函数的调用实例详解
Oct 31 #NodeJs
You might like
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
python中dict使用方法详解
2019/07/17 Python
python list转置和前后反转的例子
2019/08/26 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
物流毕业生个人的自我评价
2014/02/13 职场文书
小学生秋游活动方案
2014/02/23 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技