Ketika saya menggunakan transportasi Konsol, saya tahu bahwa saya dapat menambahkan pendengar seperti ini:
logger.on('logging', (transport, level, msg, meta) => gunakan data yang dicatat....
Tapi bagaimana saya bisa masuk ke memori dan mendengarkannya?
Saya pada dasarnya mencari solusi untuk mendengarkan log tanpa menulisnya di konsol/file/dikirim melalui HTTP.
Bersulang.
Untuk pengguna winston@3
: winston.transports.Memory
telah dihapus – gunakan winston.transports.Stream
sebagai gantinya dengan implementasi aliran buffer apa pun.
Secara historis dari perspektif winston < 3
winston.transports.Memory
digunakan untuk tujuan pengujian unit. Itu telah dihapus di winston@3
karena aliran mampu menangani tekanan balik. Harap pertimbangkan untuk memutakhirkan & terima kasih telah menggunakan winston
!
Hai pertanyaan awal masih valid - apakah ada contoh?
Kami juga ingin melakukan ini, untuk dapat melakukan logging ke memori selama pengujian.
@lonix1 @indexzero sesuatu seperti ini harus bekerja:
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'))
Saya kira ini tidak bisa bekerja dengan IE11, bukan?
Komentar yang paling membantu
@lonix1 @indexzero sesuatu seperti ini harus bekerja: