日志涉及的东西还是挺多的
一.日志格式化
默认是自带格式的,但保不齐自己有自定义格式的需求.因此需要修改格式.
// ./config/config.default.js
......
config.logger = {
dir: path.join(__dirname, '../logs'),
contextFormatter(meta) {
//TODO:这里就是默认loger返回的日志格式了
return `${meta.date} ${meta.message}`;
},
};
二.自定义存储路径
u1s1,你会发现本地运行的时候,产生的loger在项目文件夹下,但在部署的时候就找不到了.
因为在egg默认的生产环境中,会在用户根目录下,新建一个叫logs的文件夹,所有日志都在里面.
因此需要自定义日志地址
// ./config/config.default.js
......
config.logger = {
//这里写日志地址,__dirname可以变成别的
//但是注意,appInfo.root在生产和开发不是一个地址,建议使用appInfo.baseDir
dir: path.join(__dirname, '../logs'),
contextFormatter(meta) {
return `${meta.date} ${meta.message}`;
},
};
三.自定义logger
设置customLogger即可.frontLogger设置的东西和默认logger差不多
// ./config/config.default.js
......
config.customLogger = {
//frontLogger是logger名,可变
frontLogger: {
file: path.join(appInfo.baseDir, 'logs/prod/szyx-monitor-web.log'),
contextFormatter(meta) {
return `${meta.date} ${meta.message}`;
},
},
};
使用
const logger = this.ctx.getLogger('frontLogger');
logger.error('xxxx');
网友评论