Cuando uso el transporte de consola, sé que puedo agregar un oyente como este:
logger.on ('logging', (transporte, nivel, msg, meta) => usar los datos registrados ....
Pero, ¿cómo puedo registrarme en la memoria y escucharlo?
Básicamente, estoy buscando una solución para escuchar los registros sin tenerlos escritos en la consola / archivo / enviados a través de HTTP.
Salud.
Para los usuarios de winston@3
: winston.transports.Memory
ha sido eliminado; use winston.transports.Stream
lugar con cualquier implementación de transmisión almacenada en búfer.
Históricamente, desde una perspectiva de winston < 3
, winston.transports.Memory
se usaba con fines de prueba unitaria. Se eliminó en winston@3
ya que las transmisiones son capaces de manejar la contrapresión. ¡Considere actualizar y gracias por usar winston
!
Hola, la pregunta original sigue siendo válida, ¿hay algún ejemplo?
También queremos hacer esto, para poder realizar el registro en la memoria durante la prueba.
@ lonix1 @indexzero algo como esto debería funcionar:
import { Writable } from 'stream';
let output = ''
const stream = new Writable()
stream._write = (chunk, encoding, next) => {
output = output += chunk.toString()
next()
}
const streamTransport = new winston.transports.Stream({ stream })
const logger = winston.createLogger({ transports: [streamTransport]})
logger.info('test message')
const logEvents = output.trim().split('\n')
assert(logEvents[0].includes('test message'))
Supongo que esto no podría funcionar con IE11, ¿verdad?
Comentario más útil
@ lonix1 @indexzero algo como esto debería funcionar: