使用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 相关文章推荐
PHPStorm 2020.1 调试 Nodejs的多种方法详解
Sep 17 NodeJs
初始Nodejs
Nov 08 NodeJs
轻松创建nodejs服务器(3):代码模块化
Dec 18 NodeJs
轻松创建nodejs服务器(9):实现非阻塞操作
Dec 18 NodeJs
nodejs事件的监听与触发的理解分析
Feb 12 NodeJs
浅谈NodeJS中require路径问题
May 07 NodeJs
Windows下使用Nodejs运行js的方法
Sep 02 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
详解Nodejs内存治理
May 13 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php Ajax乱码
2008/04/09 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
opencv+python实现均值滤波
2020/02/19 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
大学应届生求职简历的自我评价
2013/10/08 职场文书
医院护士的求职信
2014/01/03 职场文书
校园广播稿500字
2014/02/04 职场文书
产品质量承诺范本
2014/03/31 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
获奖感言范文
2015/07/31 职场文书
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers