日志涉及的东西还是挺多的
一.日志格式化
默认是自带格式的,但保不齐自己有自定义格式的需求.因此需要修改格式.
1 2 3 4 5 6 7 8 9
| // ./config/config.default.js ...... config.logger = { dir: path.join(__dirname, '../logs'), contextFormatter(meta) { //TODO:这里就是默认loger返回的日志格式了 return `${meta.date} ${meta.message}`; }, };
|
二.自定义存储路径
u1s1,你会发现本地运行的时候,产生的loger在项目文件夹下,但在部署的时候就找不到了.
因为在egg默认的生产环境中,会在用户根目录下,新建一个叫logs的文件夹,所有日志都在里面.
因此需要自定义日志地址
1 2 3 4 5 6 7 8 9 10
| // ./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差不多
1 2 3 4 5 6 7 8 9 10 11
| // ./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}`; }, }, };
|
使用
1 2
| const logger = this.ctx.getLogger('frontLogger'); logger.error('xxxx');
|