1.原因
- 使用koa-log4因为本人使用koa来进行开发node项目做后端,所以就也用koa-log4来进行日志的管理。
- 所有console.log都输出到控制台找关键模块的日志输出找起来比较麻烦。
- 控制台关闭了或者清空了想找回之前的日志来定位项目的一些调试或问题就会非常麻烦。
- koa-log4存储日志到指定位置保留日志文件,方便查找定位问题。
2.安装
npm install koa-log4
3.使用
const log4js = require("koa-log4");
log4js.configure({
appenders:{
console:{
type:"console",
category:"console"
},
// 服务器接口
httplog:{
type:"dateFile",//按日期分割
filename:"../log/http/all.log",//存储的日志文件位置
pattern:"yyyy-MM-dd.log",//日志文件的命名
backups:300,//最多保存的文件数量
layout:{
type:"pattern",
pattern:"%d{yyyy-MM-dd hh:mm:ss} [%p] %m"//输出的内容样式
}
},
// 订单日志分割
order:{
type:"dateFile",//按日期分割
filename:"../log/order/all.log",//存储的日志文件位置
pattern:"yyyy-MM-dd-hh.log",//日志文件的命名
backups:300,//最多保存的文件数量
layout:{
type:"pattern",
pattern:"%d{yyyy-MM-dd hh:mm:ss} [%p] %m"//输出的内容样式
}
}
},
categories:{
default:{
appenders:["console"],
level:"all"//可输出等级
},
httplog:{
appenders:["httplog"],//只保存到文件里,不输出到控制台
level:"all"//可输出等级
},
order:{
appenders:["order","console"],//保存到文件里,并输出到控制台
level:"all"//可输出等级
}
}
})
//普通使用
const logger = log4js.getLogger("order");
logger.trace("测试trace");
logger.debug("测试debug");
logger.info("测试info");
logger.warn("测试warn");
logger.error("测试error");
logger.fatal("测试fatal");
//搭配koa进行记录http访问请求到日志中使用
const httpLogger = ()=> log4js.koaLogger(log4js.getLogger("httplog"));//使用httplog
const koa = require("koa");
const app = new koa();
// 请求日志
app.use(httpLogger())