使用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文件操作模块FS(File System)常用函数简明总结
Jun 05 NodeJs
NodeJs中的VM模块详解
May 06 NodeJs
使用NodeJs 开发微信公众号(三)微信事件交互实例
Mar 02 NodeJs
NodeJS处理Express中异步错误
Mar 26 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
nodejs 如何手动实现服务器
Aug 20 NodeJs
typescript nodejs 依赖注入实现方法代码详解
Jul 21 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 NodeJs
NodeJS配置CORS实现过程详解
Dec 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
Js callBack 返回前一页的js方法
2008/11/30 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
浅谈js闭包理解
2019/03/28 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
python中的sort方法使用详解
2014/07/25 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
PyQt5每天必学之单行文本框
2018/04/19 Python
python3射线法判断点是否在多边形内
2019/06/28 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
应聘编辑职位自荐信范文
2014/01/05 职场文书
体操比赛口号
2014/06/10 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书