使用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和PhantomJS抓取网站页面信息以及网站截图
Nov 18 NodeJs
nodejs开发环境配置与使用
Nov 17 NodeJs
你一定会收藏的Nodejs代码片段
Feb 04 NodeJs
使用NodeJs 开发微信公众号(三)微信事件交互实例
Mar 02 NodeJs
NodeJS远程代码执行
Aug 28 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
NodeJS自定义模块写法(详解)
Jun 27 NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
Jul 07 NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
Jul 14 NodeJs
nodeJS服务器的创建和重新启动的实现方法
May 12 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 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
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
js最简单的拖拽效果实现代码
2010/09/24 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
Element Input组件分析小结
2018/10/11 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
如何基于python实现不邻接植花
2020/05/01 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
澳大利亚网上书店:QBD
2021/01/09 全球购物
UNIX文件类型
2013/08/29 面试题
公司领导推荐信
2013/11/12 职场文书
大学生演讲稿范文
2014/01/11 职场文书
军人违纪检讨书
2014/02/04 职场文书
护理目标管理责任书
2014/07/25 职场文书
投资意向协议书
2015/01/29 职场文书
论文致谢词范文
2015/05/14 职场文书
运动会入场词
2015/07/18 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP