Pruebe v2.0.0. pero surge el mismo problema.
Pide que compruebes.
Yo uso winston v1.0.2. Me encontré con el siguiente registro de error.
¿Hay alguna solución?
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)
Proporcione el código exacto con el que está ejecutando [email protected]
. Es muy sospechoso que el ejemplo de código anterior sea exactamente lo que está ejecutando ya que _winston.transports.DailyRotateFile se movió a winston-daily-rotate-file en 2.0.0_
Este era un problema conocido en la rama 1.x
que solucionamos. Confirme (con una muestra de código reproducible completa) que está utilizando [email protected].
Incluso si esto sigue ocurriendo, en realidad no es un gran problema. Puedes simplemente ejecutar:
logger.setMaxListeners(0);
y eso definitivamente lo arreglará.
Así que estaba actualizando bithavoc/express-winston para trabajar con [email protected]
y este problema volvió a surgir. No sé si establecer el máximo en infinito es una buena idea para evitar esto.
Solo para tu información, también me encontré con este problema. Estaba lidiando con oyentes de excepción no controlados. Hay un método que necesita para llamar a su registrador .exceptions.unhandle()
para eliminar a los oyentes. Esto realmente debería estar mejor documentado, o si lo está, no pude encontrarlo fácilmente. Busqué en el código para encontrar esta llamada (en realidad, encontré una llamada en desuso que me indicó esta, aunque el texto del registro de desuso está mal escrito).
Comentario más útil
Solo para tu información, también me encontré con este problema. Estaba lidiando con oyentes de excepción no controlados. Hay un método que necesita para llamar a su registrador
.exceptions.unhandle()
para eliminar a los oyentes. Esto realmente debería estar mejor documentado, o si lo está, no pude encontrarlo fácilmente. Busqué en el código para encontrar esta llamada (en realidad, encontré una llamada en desuso que me indicó esta, aunque el texto del registro de desuso está mal escrito).