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

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;