express-log-middleware
说明
app.use(
require('express-log-middleware')(config)
);
name | type | description |
---|
config.model | string | 项目模板名称(用于指定Elasticsearch中的index) 必填项 |
config.level | string | 日志输出级别 |
config.logDir | string | 日志输出路径 |
config.getBusinessData | function | 获取业务专有数据(这些数据会一同发送到日志服务) 参数 params req |
config.onParams | function | 对缺省params进行处理,返回处理后params 参数 params req |
config.filter | function | 过滤函数,不提供此函数或返回true代表需要输出日志 参数 req |
config.logEnv | string | 日志环境 目前EFK/ELK 项目迁移进openshift之后使用其中集成的EFK不用再使用log4js收集日志; default: "ELK" |
使用实例
不对参数进行处理
//logEnv = "EFK"
app.use(
require('express-log-middleware')({logEnv: 'EFK'}); //如果logEnv是EFK, 只用这一个配置即可;
)
//logEnv = "ELK"
app.use(
require('express-log-middleware')({model: 'education_cloud'})
);
使用onParams 定制参数
app.use(
require('express-log-middleware')({
model: 'education_cloud',
onParams: (params,req) => ({userId:req.user.id})
})
);
使用getBusinessData 增加额外信息
app.use(require('express-log-middleware')({
model: 'education_cloud',
getBusinessData: function (params, req) {
let user = req.user || {};
const customer = req.customer || {};
return {
userId: user.id || -1,
customeUrl:customer.url || '-'
}
}
}));
logEnv->ELK debug
req.logger.log('xxx')
req.logger.error('xxx')
logEnv->EFK debug
console.log(JSON.stringify({})); //如果输出日志是jsonstring, EFK会处parse之后提取key/value
console.log('this is a test'); //字符串输出
console.warn('debug尽量不要换行输出');