You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
const log4js = require('log4js');
|
|
|
|
const log_config = {
|
|
"appenders": {
|
|
"everything": {
|
|
"type": "dateFile",
|
|
"filename": "logs/app",
|
|
"pattern": "yyyy-MM-dd.log",
|
|
"alwaysIncludePattern": true,
|
|
"numBackups": 7, // the number of old files that matches the pattern to keep (excluding the hot file).
|
|
"compress": true,
|
|
}
|
|
// "everything": {
|
|
// "type": "multiFile",
|
|
// "base": "logs/app.",
|
|
// "property": "startTime",
|
|
// // "extension": ".log",
|
|
// "pattern": "yyyy-MM-dd.log",
|
|
// // "pattern": "yyyy-MM-dd",
|
|
// "alwaysIncludePattern": true,
|
|
// "maxLogSize": 10485760,
|
|
// "backups": 3,
|
|
// "compress": true
|
|
// }
|
|
},
|
|
"categories": {
|
|
"default": {
|
|
"appenders": ["everything"],
|
|
"level": "debug"
|
|
}
|
|
}
|
|
};
|
|
log4js.configure(log_config);
|
|
|
|
// log4js.configure({
|
|
// appenders: { cheese: { type: 'file', filename: 'cheese.log' } },
|
|
// categories: { default: { appenders: ['cheese'], level: 'error' } }
|
|
// });
|
|
|
|
const logger = log4js.getLogger();
|
|
|
|
console.log = logger.info.bind(logger);
|
|
console.error = logger.error.bind(logger);
|
|
const log4 = async (ctx, next) => {
|
|
try {
|
|
await next();
|
|
} catch (err) {
|
|
logger.error(err);
|
|
ctx.status = err.status || 500;
|
|
ctx.body = err.message;
|
|
}
|
|
}
|
|
|
|
module.exports = log4;
|