koa-log4 管理nodeJs访问日志、系统日志

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:47   3065   0
使用nodeJs koa2框架开发后端应用,使用koa-log4中间件管理nodeJs访问日志、系统日志。

一、安装koa-log4

因为项目使用了koa2,所以安装的高版本的log4,

$ npm i --save koa-log4@2

如果使用koa1,请使用指令

$ npm i --save koa-log4@1

koa-log4 Npm主页

二、新建log4.js文件来配置log4

const path = require('path');//引入原生path模块
const log4js = require('koa-log4');//引入koa-log4

log4js.configure({
  appenders: {
    //访问日志
    access: {
      type: 'dateFile',
      pattern: '-yyyy-MM-dd.log', //通过日期来生成文件
      alwaysIncludePattern: true, //文件名始终以日期区分
      encoding:"utf-8",
      filename: path.join('logs/', 'access.log') //生成文件路径和文件名
    },
    //系统日志
    application: {
      type: 'dateFile',
      pattern: '-yyyy-MM-dd.log', //通过日期来生成文件
      alwaysIncludePattern: true, //文件名始终以日期区分
      encoding:"utf-8",
      filename: path.join('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. systemLogger = log4js.getLogger('application');  //记录所有应用级别的日志

三、如何使用日志

  • 访问日志--记录用户所有访问请求,以中间件的形式在koa入口使用即可
    const Koa = require('koa');
    const app = new Koa();
    const {  accessLogger,systemLogger, } = require('./logger');
    const router = new KoaRouter();
    app.use(accessLogger()); //中间件
  • 系统日志--记录系统状态的error

       app.on('error', err => {logger.error(err); });
    

四、效果

clipboard.png

clipboard.png

clipboard.png

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP