Winston: هل يمكن لشخص ما مشاركة مثال على استخدام نقل الذاكرة وطرق الاستماع إليه؟

تم إنشاؤها على ١٦ فبراير ٢٠١٦  ·  4تعليقات  ·  مصدر: winstonjs/winston

عندما أستخدم نقل وحدة التحكم ، أعلم أنه يمكنني إضافة مستمع مثل هذا:
logger.on ('logging'، (النقل ، المستوى ، msg ، meta) => استخدام البيانات المسجلة ...

ولكن كيف يمكنني تسجيل الدخول إلى الذاكرة والاستماع إليها؟
أنا أبحث بشكل أساسي عن حل للاستماع إلى السجلات دون كتابتها في وحدة التحكم / الملف / إرسالها عبر HTTP.

هتافات.

2.x only

التعليق الأكثر فائدة

@ lonix1indexzero شيئا من هذا القبيل يجب أن تعمل:

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

ال 4 كومينتر

لمستخدمي winston@3 : تمت إزالة winston.transports.Memory - استخدم winston.transports.Stream بدلاً من ذلك مع أي تنفيذ دفق مؤقت.

تاريخيًا من منظور winston < 3 winston.transports.Memory تم استخدامه لأغراض اختبار الوحدة. تمت إزالته في winston@3 لأن التدفقات قادرة على التعامل مع الضغط الخلفي. يرجى النظر في الترقية وشكرًا لاستخدام winston !

مرحبًا ، لا يزال السؤال الأصلي صالحًا - هل هناك مثال؟

نريد أيضًا القيام بذلك ، حتى نتمكن من إجراء التسجيل في الذاكرة أثناء الاختبار.

@ lonix1indexzero شيئا من هذا القبيل يجب أن تعمل:

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

لا أفترض أن هذا يمكن أن يعمل مع IE11 ، أليس كذلك؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات