【发布时间】:2020-02-27 10:09:26
【问题描述】:
在使用带有 winston-daily-rotate-file 包的文件日志记录时,winston 出现以下错误,代码适用于 winston 控制台日志记录,
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added. Use emitter.setMaxListeners() to increase limit
at _addListener (events.js:256:17)
at DailyRotateFile.addListener (events.js:272:10)
at DailyRotateFile.once (events.js:301:8)
at asyncForEach (/home/ubuntumachine/Desktop/project/node_modules/winston/lib/winston/exception-handler.js:217:17)
at /home/ubuntumachine/Desktop/project/node_modules/async/internal/withoutIndex.js:9:16
at eachOfArrayLike (/home/ubuntumachine/Desktop/project/node_modules/async/eachOf.js:65:9)
at exports.default (/home/ubuntumachine/Desktop/project/node_modules/async/eachOf.js:9:5)
at eachLimit (/home/ubuntumachine/Desktop/project/node_modules/async/forEach.js:80:24)
at ExceptionHandler._uncaughtException (/home/ubuntumachine/Desktop/project/node_modules/winston/lib/winston/exception-handler.js:203:5)
at process.emit (events.js:198:13)
(node:20805) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added. Use emitter.setMaxListeners() to increase limit
at _addListener (events.js:256:17)
at DailyRotateFile.addListener (events.js:272:10)
at DailyRotateFile.once (events.js:301:8)
at asyncForEach (/home/ubuntumachine/Desktop/project/node_modules/winston/lib/winston/exception-handler.js:216:17)
at /home/ubuntumachine/Desktop/project/node_modules/async/internal/withoutIndex.js:9:16
at eachOfArrayLike (/home/ubuntumachine/Desktop/project/node_modules/async/eachOf.js:65:9)
at exports.default (/home/ubuntumachine/Desktop/project/node_modules/async/eachOf.js:9:5)
at eachLimit (/home/ubuntumachine/Desktop/project/node_modules/async/forEach.js:80:24)
at ExceptionHandler._uncaughtException (/home/ubuntumachine/Desktop/project/node_modules/winston/lib/winston/exception-handler.js:203:5)
at process.emit (events.js:198:13)
(node:20805) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 31 error listeners added. Use emitter.setMaxListeners() to increase limit
at _addListener (events.js:256:17)
at Console.addListener (events.js:272:10)
at Console.once (events.js:301:8)
at asyncForEach (/home/ubuntumachine/Desktop/project/node_modules/winston/lib/winston/exception-handler.js:217:17)
at /home/ubuntumachine/Desktop/project/node_modules/async/internal/withoutIndex.js:9:16
at eachOfArrayLike (/home/ubuntumachine/Desktop/project/node_modules/async/eachOf.js:65:9)
at exports.default (/home/ubuntumachine/Desktop/project/node_modules/async/eachOf.js:9:5)
at eachLimit (/home/ubuntumachine/Desktop/project/node_modules/async/forEach.js:80:24)
at ExceptionHandler._uncaughtException (/home/ubuntumachine/Desktop/project/node_modules/winston/lib/winston/exception-handler.js:203:5)
at process.emit (events.js:198:13)
尝试将最大侦听器设置为无穷大,
const EventEmitter = require('events');
const emitter = new EventEmitter();
emitter.setMaxListeners(Infinity);
仍然面临同样的问题。
【问题讨论】:
-
修复添加无限监听的代码
-
@gman 代码用于注释掉“new winston.transports.File({ filename: 'combined.log' })”
-
对于遇到此问题的任何人,请参阅this ticket。