使用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
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
解析NodeJs的调试方法
Dec 11 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
Nodejs调用Dll模块的方法
Sep 17 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 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
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
php实现的操作excel类详解
2016/01/15 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
arguments对象
2006/11/20 Javascript
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
Sample script that deletes a SQL Server database
2007/06/16 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
Python实现的单向循环链表功能示例
2017/11/10 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
学习方法演讲稿
2014/05/10 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
求职信格式范文
2015/03/19 职场文书
交通安全学习心得体会
2016/01/18 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
python读取mat文件生成h5文件的实现
2022/07/15 Python