[eggjs/egg]egg-logger 写日志报错

2024-07-22 152 views
1

压测项目写日志的时候出现报错Cannot call write after a stream was destroyed,错误内容如下:

Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed at doWrite (_stream_writable.js:406:19) at writeOrBuffer (_stream_writable.js:394:5) at Socket.Writable.write (_stream_writable.js:294:11) at ConsoleTransport.log (/data/node/CCE-Framework/node_modules/egg/node_modules/egg-logger/lib/transports/console.js:49:22) at Map.log (/data/node/CCE-Framework/node_modules/egg/node_modules/egg-logger/lib/logger.js:80:19) at ContextLogger.(anonymous function) [as info] (/data/node/CCE-Framework/node_modules/egg/node_modules/egg-logger/lib/egg/context_logger.js:48:18) at OabService.create (/data/node/plugin/cce-wx-fwsc/app/service/oab_fwsc/appointment.js:22:24) at AppointmentController.create (/data/node/CCE-Fashion-WX-H5/app/controller/oab/appointment.js:66:67)

日志内容较多,内容通过第三方接口获取,级别info。

egg "version": "2.22.2" egg-logger "version": "2.4.1"

回答

9

可以的话,请提供 最小可复现仓库,可通过npm init egg --type=simple 来初始化并上传到你的 GitHub 仓库。

6

这个不好重现,当前问题的日志内容是从第三方接口获取的,并且接口返回的内容较多

8

只在压测的时候出现吗? 有做日志分割吗?是否做了按大小切分等操作?

8

只是压测的出现,正常请求没有报错,日志配置目前是默认的

3

我这边ab压测并没有出现类似的报错,如果可以的话最好提供一下最小可复现仓库,可以方便我们快速排查。

3

看现象是 logger 被关闭了,要实际分析一下为什么关闭了,是主动关闭还是异常导致。

8

看下压测时候,有没有进程异常退出又被拉起来了。

8

console 是直接 pipe 到 stdout/stderr 的,是不是你在 terminal 前台启动的,然后把 terminal 关闭了。