使用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 redis 发布订阅机制封装实现方法及实例代码
Dec 15 NodeJs
nodejs和php实现图片访问实时处理
Jan 05 NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
让nodeJS支持ES6的词法----babel的安装和使用方法
Jul 31 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
nodejs中安装ghost出错的原因及解决方法
Oct 23 NodeJs
nodejs 简单实现动态html的方法
May 12 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 NodeJs
监控Nodejs的性能实例代码
Jul 02 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
Zend的MVC机制使用分析(一)
2013/05/02 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
js option删除代码集合
2008/11/12 Javascript
JavaScript库 开发规则
2009/01/31 Javascript
js表格分页实现代码
2009/09/18 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
Javascript单例模式的介绍和实例
2016/10/08 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
javascript表单正则应用
2017/02/04 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
详解Python 正则表达式模块
2018/11/05 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
法国春天百货官网:Printemps.com
2020/06/29 全球购物
家长会学生家长演讲稿
2013/12/29 职场文书
入党介绍人意见2015
2015/06/01 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书