Winston: EventEmitterのメモリリーク。 v.2.0.0

作成日 2015年11月04日  ·  3コメント  ·  ソース: winstonjs/winston

v2.0.0をお試しください。 しかし、同じ問題が発生します。
確認をお願いします。

私はwinstonv1.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)

最も参考になるコメント

ちょうどfyi、私もこの問題に遭遇しました。 未処理の例外リスナーを処理していました。 リスナーを削除するためにロガー.exceptions.unhandle()を呼び出す必要があるメソッドがあります。 これは本当にもっとよく文書化されるべきです、あるいはそうであるならば、私はそれを簡単に見つけることができませんでした。 私はこの呼び出しを見つけるためにコードを掘り下げました(実際には、非推奨のログテキストのスペルが間違っていますが、これを指す非推奨の呼び出しを見つけました)。

全てのコメント3件

[email protected]に対して実行している正確なコードを入力してください。 _winston.transports.DailyRotateFileが2.0.0_でwinston-daily-rotate-fileに移動されて以来、上記のコードサンプルが正確に実行しているものであるかどうかは非常に疑わしいです。

これは、修正した1.xブランチの既知の問題でした。 [email protected]を使用していることを(完全に再現可能なコードサンプルで)確認してください。

これがまだ発生している場合でも、それは実際には大きな問題ではありません。 あなたはただ走ることができます:

logger.setMaxListeners(0);

そしてそれは間違いなくそれを修正します。

そのため、 [email protected]で動作するようにbithavoc / express-winstonを更新していましたが、この問題が再び発生しました。 最大値を無限大に設定することがこれを回避するための良いアイデアであるかどうかはわかりません

ちょうどfyi、私もこの問題に遭遇しました。 未処理の例外リスナーを処理していました。 リスナーを削除するためにロガー.exceptions.unhandle()を呼び出す必要があるメソッドがあります。 これは本当にもっとよく文書化されるべきです、あるいはそうであるならば、私はそれを簡単に見つけることができませんでした。 私はこの呼び出しを見つけるためにコードを掘り下げました(実際には、非推奨のログテキストのスペルが間違っていますが、これを指す非推奨の呼び出しを見つけました)。

このページは役に立ちましたか?
0 / 5 - 0 評価