Winston: EventEmitter 内存泄漏。 v.2.0.0

创建于 2015-11-04  ·  3评论  ·  资料来源: winstonjs/winston

尝试 v2.0.0。 但同样的问题出现了。
要求您检查。

我使用温斯顿 v1.0.2。 我遇到了以下错误日志。
有什么解决办法吗?

我的交通工具

transports: [
  new winston.transports.Console({
    level:debug,
    colorize: 'true'
  }),
  new (winston.transports.DailyRotateFile)({
    datePattern: '.yyyy-MM-dd',
    filename: path.join(__dirname, '../logs/chat.error'),
    handleExceptions: true,
    prettyPrint: true,
    level: error,
    timestamp: 'true'
    //maxsize: 500000000 //byte
  })
]

错误日志

(node) warning: possible EventEmitter memory leak detected. 11 logged listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
    at addListener (events.js:239:17)
    at once (events.js:265:8)
    at Transport.logException (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\winston\lib\winston\transports\transport.js:132:8)
    at logAndWait (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\winston\lib\winston\logger.js:646:15)
    at c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\async\lib\async.js:157:13
    at _each (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\async\lib\async.js:57:9)
    at Object.async.each (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\async\lib\async.js:156:9)
    at Logger._uncaughtException (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\winston\lib\winston\logger.js:669:9)
    at emitOne (events.js:77:13)
    at process.emit (events.js:169:7)

最有用的评论

仅供参考,我也遇到了这个问题。 它正在处理未处理的异常侦听器。 您需要在记录器.exceptions.unhandle()上调用一种方法来删除侦听器。 这确实应该得到更好的记录,或者如果是,我很难找到它。 我挖掘了代码来找到这个调用(实际上我发现了一个不推荐使用的调用,它指向了这个调用,尽管弃用日志文本拼写错误)。

所有3条评论

请提供您针对[email protected]运行的确切代码。 自从 _winston.transports.DailyRotateFile 在 2.0.0_ 中移动到winston-daily-rotate-file后,上面的代码示例正是您正在运行的代码,这是非常可疑的。

这是我们修复的1.x分支中的一个已知问题。 请确认您使用的是[email protected](带有完整的可重现代码示例)。

即使这种情况仍然发生,这也不是什么大问题。 你可以运行:

logger.setMaxListeners(0);

这肯定会解决它。

所以我正在更新bithavoc/express-winston以使用[email protected]并且这个问题再次出现。 我不知道将最大值设置为无穷大是否是解决这个问题的好主意

仅供参考,我也遇到了这个问题。 它正在处理未处理的异常侦听器。 您需要在记录器.exceptions.unhandle()上调用一种方法来删除侦听器。 这确实应该得到更好的记录,或者如果是,我很难找到它。 我挖掘了代码来找到这个调用(实际上我发现了一个不推荐使用的调用,它指向了这个调用,尽管弃用日志文本拼写错误)。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Buzut picture Buzut  ·  3评论

jlank picture jlank  ·  4评论

mohanen picture mohanen  ·  4评论

anks333 picture anks333  ·  3评论

greenhat616 picture greenhat616  ·  3评论