我的GitHub
0%

无星的Egg之旅(二)——日志

日志涉及的东西还是挺多的

一.日志格式化

默认是自带格式的,但保不齐自己有自定义格式的需求.因此需要修改格式.

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');
我是阿星,阿星的阿,阿星的星!