Quando eu uso o transporte do console, sei que posso adicionar um ouvinte como este:
logger.on ('logging', (transport, level, msg, meta) => use os dados registrados ....
Mas como posso registrar na memória e ouvi-la?
Basicamente, estou procurando uma solução para ouvir os logs sem que eles sejam escritos no console / arquivo / enviados por HTTP.
Felicidades.
Para winston@3
usuários: winston.transports.Memory
foi removido - use winston.transports.Stream
vez de qualquer implementação de fluxo em buffer.
Historicamente, de uma perspectiva winston < 3
winston.transports.Memory
foi usado para fins de teste de unidade. Ele foi removido em winston@3
pois os fluxos são capazes de lidar com a contrapressão. Considere atualizar e obrigado por usar winston
!
Olá, a pergunta original ainda é válida - há um exemplo?
Também queremos fazer isso, para poder realizar o registro na memória durante o teste.
@ lonix1 @indexzero algo assim deve 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'))
Suponho que isso não funcione com o IE11, não é?
Comentários muito úteis
@ lonix1 @indexzero algo assim deve funcionar: