Winston: Bisakah seseorang membagikan contoh penggunaan transportasi memori dan cara mendengarkannya?

Dibuat pada 16 Feb 2016  ·  4Komentar  ·  Sumber: winstonjs/winston

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.

2.x only

Komentar yang paling membantu

@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'))

Semua 4 komentar

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?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

pocesar picture pocesar  ·  3Komentar

jlank picture jlank  ·  4Komentar

anks333 picture anks333  ·  3Komentar

tagyoureit picture tagyoureit  ·  4Komentar

ghost picture ghost  ·  4Komentar