这篇文章主要介绍了如何在项目中使用log4.js的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
pm2中自带的日志内容是不能满足日常的需求的,因此需要在项目中加上日志管理,这里研究了下日志四的使用方法,效果挺好的,想要查看的都可以找到,记录下简单的使用步骤
log4的配合
//config.js
let path=require( path );
//日志根目录
设baseLogPath=path。resolve(_ _ dirname,./././logs );
//请求日志目录
let req path=/request ;
//请求日志文件名
let reqFileName=请求
//请求日志输出完整路径
let req log path=baseLogPath req path / req filename;
//响应日志目录
let resPath=/response ;
//响应日志文件名
let resFileName=响应
//响应日志输出完整路径
let resLogPath=baseLogPath resPath / resFileName;
//错误日志目录
let errPath=/error ;
//错误日志文件名
let errFileName= error
//错误日志输出完整路径
let errlog path=baseLogPath errPath / errFileName;
模块。导出={
附录:{
//所有的日志
控制台:{类型:控制台 },
//请求日志
请求记录器:{
类型:日期文件,//日志类型
文件名:请求日志路径,//输出文件名
模式:"-yyyy-MM-dd-hh.log ",//后缀
alwaysIncludePattern: true,//上面两个参数是否合并
编码:" utf-8 ",//编码格式
maxLogSize: 1000,//最大存储内容
},
//响应日志
" RES logger":{
类型:"日期文件",
文件名:resLogPath,
模式:"-yyyy-MM-dd-hh.log ",
alwaysIncludePattern: true,
编码:“utf-8”,
maxLogSize: 1000,
},
//错误日志
错误记录器:{
类型:"日期文件",
文件名:错误路径,
模式:"-yyyy-MM-dd-hh.log ",
alwaysIncludePattern: true,
编码:“utf-8”,
maxLogSize: 1000,
}
},
//分类以及日志等级
类别:{
默认值:{
appenders: [console],
级别:"全部"
},
请求记录器:{
appenders: [reqLogger],
级别:"信息"
},
resLogger: {
appenders: [resLogger],
级别:"信息"
},
错误记录器:{
appenders: [errLogger],
级别:"错误"
}
},
}
log4的日志封装
这里是把日志四封装成一个中间件,在app.js中直接调用就可以了
//先安装log4js
//log4.js
const log4Config=require( ./config’)
const log4js=require(log4js )
//调用配置文件
log4js.configure(log4Config)
类CommonHandle {
构造函数(){}
//格式化请求日志
静态格式请求日志(ctx,时间){
let text= -请求开始-
let method=ctx.method
text=请求方法:${method} n请求网址:$ { CTX。原始URL } n ` s
if(method=GET){
text=请求数据:$ { JSON。斯特林菲(CTX。查询)} n ` n
}否则{
text=请求数据:$ { JSON。斯特林菲(CTX。body)} n ` s
}
text=` CTX所有:$ { JSON。stringify(CTX)} ` 1
返回文本
}
//格式化相应日志
静态格式日志(ctx,时间){
let text= -响应开始-
text=响应结果:$ { JSON。斯特林菲(CTX。回应。body)} n ` s
text=` response all:$ { JSON。stringify(CTX)} n ` s
text=响应时间:${time} n
返回文本
}
//格式化错误日志
静态格式错误日志(ctx,错误,时间){
let text= -错误开始-
text=this.formatResLog(ctx,time)
text=错误内容:${JSON.stringify(错误)} `
返回文本
}
}
类手柄记录器扩展CommonHandle{
构造函数(){
超级()
}
//请求日志
静态请求记录器(ctx){
log4js.getLogger(reqLogger ).info(this.formatReqLog(ctx))
}
//相应日志
静态resLogger(ctx,time){
log4js.getLogger(resLogger ).info(this.formatResLog(ctx,time))
}
//错误日志
静态错误记录器(ctx,错误,时间){
log4js.getLogger(errLogger ).info(this.formatErrorLog(ctx,error,time))
}
}
module.exports=(options)={
返回异步(ctx,next)={
常数开始时间=新日期()
让句号;
尝试{
//请求日志
HandleLogger.reqLogger(ctx)
等待下一个()
周期=新日期()-开始时间
//响应日志
HandleLogger.resLogger(ctx,句点)
}catch(err){
周期=新日期()-开始时间
//错误日志
HandleLogger.errorLogger(ctx,err,period)
}
}
}
调用封装好的日志函数
这里直接以中间件的形式调用就可以了
//app.js
const Koa=require(koa )
常量应用程序=新树袋熊()
const LogJS=require( ./common/log/log4’)
//log4.js引入
app.use(LogJS())
最后部署上线之后就能直接在根目录下的日志文件夹下查看对应的日志内容。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。