Winston: Fuite de mémoire EventEmitter. v.2.0.0

Créé le 4 nov. 2015  ·  3Commentaires  ·  Source: winstonjs/winston

Essayez v2.0.0. mais le même problème se pose.
Je vous demande de vérifier.

J'utilise winston v1.0.2. J'ai rencontré le journal d'erreurs suivant.
y-a-t'il une solution?

mes transports

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
  })
]

journal des erreurs

(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)

Commentaire le plus utile

Juste pour info, j'ai également rencontré ce problème. Il s'agissait d'auditeurs d'exception non gérés. Il existe une méthode que vous devez appeler sur votre enregistreur .exceptions.unhandle() pour supprimer les écouteurs. Cela devrait vraiment être mieux documenté, ou si c'est le cas, je n'ai pas pu le trouver facilement. J'ai creusé dans le code pour trouver cet appel (en fait, j'ai trouvé un appel obsolète qui m'a pointé vers celui-ci, bien que le texte du journal d'obsolescence soit mal orthographié).

Tous les 3 commentaires

Veuillez fournir le code exact que vous utilisez avec [email protected] . Il est très suspect que l'exemple de code ci-dessus soit exactement ce que vous exécutez puisque _winston.transports.DailyRotateFile a été déplacé vers winston-daily-rotate-file dans 2.0.0_

Il s'agissait d'un problème connu dans la branche 1.x que nous avons résolu. Veuillez confirmer (avec un échantillon de code reproductible complet) que vous utilisez [email protected].

Même si cela se produit toujours, ce n'est vraiment pas un gros problème. Vous pouvez simplement exécuter :

logger.setMaxListeners(0);

et cela réglera certainement le problème.

J'étais donc en train de mettre à jour bithavoc/express-winston pour qu'il fonctionne avec [email protected] et ce problème est revenu. Je ne sais pas si définir le maximum à l'infini est une bonne idée pour contourner ce problème

Juste pour info, j'ai également rencontré ce problème. Il s'agissait d'auditeurs d'exception non gérés. Il existe une méthode que vous devez appeler sur votre enregistreur .exceptions.unhandle() pour supprimer les écouteurs. Cela devrait vraiment être mieux documenté, ou si c'est le cas, je n'ai pas pu le trouver facilement. J'ai creusé dans le code pour trouver cet appel (en fait, j'ai trouvé un appel obsolète qui m'a pointé vers celui-ci, bien que le texte du journal d'obsolescence soit mal orthographié).

Cette page vous a été utile?
0 / 5 - 0 notes