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

qv7cva1a  于 2022-10-24  发布在  其他
关注(0)|答案(5)|浏览(539)

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

// 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
不会写到自定义日志文件中

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

8hhllhi2

8hhllhi21#

start 是写到 home 目录了吧

xj3cbfub

xj3cbfub2#

start 是写到 home 目录了吧

谢谢回复!

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

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

jexiocij

jexiocij3#

start 是写到 home 目录了吧

谢谢回复!

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

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

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

l7wslrjt

l7wslrjt4#

建议你给出一个可以运行的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

mu0hgdu0

mu0hgdu05#

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

相关问题