egg icon indicating copy to clipboard operation
egg copied to clipboard

关于自定义logger在生产环境下无法写日志文件的问题

Open jpgaus opened this issue 3 years ago • 5 comments

需要使用自定义日志,记录一些特定的数据

// config 1,自定义日志 config.customerLogger myLogger 2,log level级别为INFO config.logger level : 'INFO'

// controller 1,使用 ctx.getLogger('myLogger').info('my info')


// 问题 1,npm run dev 可以正常写到自定义日志文件中

2,npm start 不会写到自定义日志文件中

是我的配置或用法有什么问题吗? 请多指教!

jpgaus avatar May 23 '22 12:05 jpgaus

start 是写到 home 目录了吧

atian25 avatar May 25 '22 01:05 atian25

start 是写到 home 目录了吧

谢谢回复!

1,自定义日志,文件目录仍然是系统目录 /app/logs,已检查写权限等没有问题 2,实际上,dev 方式运行时,是可以写日志的,只是 start 之后不写日志 3,看了脚本,dev / start 并没有什么差异

不知道还有没有其他问题?

jpgaus avatar May 27 '22 08:05 jpgaus

start 是写到 home 目录了吧

谢谢回复!

1,自定义日志,文件目录仍然是系统目录 /app/logs,已检查写权限等没有问题 2,实际上,dev 方式运行时,是可以写日志的,只是 start 之后不写日志 3,看了脚本,dev / start 并没有什么差异

不知道还有没有其他问题?

建议你给出一个可以运行的demo或者把你default、local和prod的配置发一下

zhangzhaoaaa avatar May 29 '22 15:05 zhangzhaoaaa

建议你给出一个可以运行的demo或者把你default、local和prod的配置发一下

多谢,相关文件内容如下:

  • 配置文件 config.default.js config.logger = { level: 'INFO', // NONE,DEBUG,INFO,WARN 和 ERROR 5 个级别 };

// 用户自定义日志 config.customLogger = { dataLogger: { file: path.join(appInfo.root, 'logs/data.log'), }, };

  • controller 调用 this.ctx.getLogger('dataLogger').info("\n", uid, message, data, "\n\n");

  • package.json "scripts": { "start": "egg-scripts start --daemon", "stop": "egg-scripts stop", "dev": "egg-bin dev", }


  • 执行 npm run dev,可以正常写data.log文件。 执行npm start,不写data.log

jpgaus avatar May 31 '22 22:05 jpgaus

看 run/application_config.json 可以看到最终输出的日志地址。 在 start 的控制台日志上也有写的。 start 模式是写到 home 目录的,这个文档上有说明。

atian25 avatar Jun 21 '22 02:06 atian25