共计 1227 个字符,预计需要花费 4 分钟才能阅读完成。
使用 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.logger = 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); });
四、效果