log中间件
const log4js = require('log4js');
const logjs = () => {
return async (ctx,next) => {
log4js.configure({
appenders: { cheese: { type: 'file', filename: 'cheese.log' } },
categories: { default: { appenders: ['cheese'], level: 'error' } }
});
const logger = log4js.getLogger('cheese');
const firstTime = Date.now();
await next();
const endtTime = Date.now();
const reduceTime = endtTime - firstTime;
logger.fatal('响应时间' + reduceTime);
}
}
module.exports = logjs;
错误捕获日志输出中间件
const log4js = require('log4js');
const logger = log4js.getLogger('cheese');
module.exports = (app) => {
app.use(async (ctx,next)=>{
try{
await next();
if(ctx.response.status === 404 && !ctx.response.body){
ctx.throw(404);
}
}
catch(e){
let fileName;
let status = parseInt(e.status);
if(status >= 404){
switch(status){
case 400:
case 500:
case 404:
fileName = status;
break;
default:
fileName = 'other';
}
}
logger.error('页面错误'+fileName);
ctx.body = fileName;
}
})
}