Winston: الإصدار 3.0.0-rc1 تنسيق json لا يقوم بتنسيق خصائص سلسلة التعريف

تم إنشاؤها على ٢٣ أكتوبر ٢٠١٧  ·  4تعليقات  ·  مصدر: winstonjs/winston

logger.info (رسالة ، "abc") ؛

الإخراج هو:
{"0": "a"، "1": "b"، "2": "c"، "level": "info"، "message": "message"}

أعتقد أن هذا بسبب دمج سلسلة meta في الكائن قبل Stringifing ، يبدو الأمر أسوأ بكثير مع تتبع المكدس (مصفوفة ضخمة). ربما يجب أن يكون إخراج هذه الحالة:
{"البيانات الوصفية": "abc" ، "المستوى": "المعلومات" ، "الرسالة": "الرسالة"}

docs

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

تحديث:
التنسيق البسيط به هذه المشكلة أيضًا:
انتاج:
المعلومات: الرسالة {"0": "أ" ، "1": "ب" ، "2": "ج"}

ال 4 كومينتر

تحديث:
التنسيق البسيط به هذه المشكلة أيضًا:
انتاج:
المعلومات: الرسالة {"0": "أ" ، "1": "ب" ، "2": "ج"}

يمكن تحقيق ذلك باستخدام التنسيقات المخصصة في [email protected] . يرجى النظر في الترقية.

هذا ليس استدعاء API مدعومًا في winston - أنت تقدم سلسلة كبيانات وصفية ، وليست ككائن. فيما يلي بعض استدعاءات API الصالحة:

// winston<strong i="7">@2</strong> API:
logger.log('info', 'Hello world', { custom: true });
logger.log('info', new Error('Yo, it\'s on fire'));
logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true });

// winston<strong i="8">@3</strong> API – a single JSON literal:
logger.log({ level: 'info', message: 'Hello world', custom: true });
logger.log({ level: 'info', message: new Error('Yo, it\'s on fire') });
logger.log({
  level: 'info',
  message: '%s %d%%',
  splat: ['A string', 50],
  meta: { thisIsMeta: true }
});

إذا كنت تريد إخراجًا مشابهًا لهذا:

{"metadata":"abc","level":"info","message":"message"}

ثم افعل هذا:

logger.info('message', { metadata: 'abc' });

... سوف تترك هذه البطاقة مفتوحة باعتبارها خطأ في التوثيق لشرح أفضل لكيفية عمل arity المتغير في واجهات برمجة تطبيقات التسجيل الأساسية الخاصة بـ winston .

ChrisAlderson FYI السبب في أن هذه ليست مشكلة تنسيق مخصص بسبب كتلة التعليمات البرمجية هذه :

const info = Object.assign({}, meta, {
  [LEVEL]: level,
  level,
  message: msg
});

نظرًا لأن meta عبارة عن سلسلة في هذه الحالة - "abc" فإنها تصبح الكائن {"0":"a","1":"b","2":"c"} والذي يمثل بعد ذلك قاعدة info فصاعدًا.

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