9 مكتبات مسجلات Node.js يمكنك تجربتها من أجل تسجيل أفضل

هل تواجه صعوبة في تصحيح التعليمات البرمجية الخاصة بك؟ هل تبحث عن بعض حلول التسجيل التي قد تجعل تصحيح الأخطاء أسهل؟ تابع القراءة لمعرفة المزيد.

يمر تطوير البرمجيات بعدة مراحل: جمع المتطلبات والتحليل والترميز والاختبار والصيانة. من بين كل هذه المراحل ، تتطلب مرحلة الترميز / التطوير الكثير من الوقت والجهد. يتعامل مهندسو البرمجيات مع الأخطاء النحوية والأخطاء المنطقية وأخطاء وقت التشغيل. يتم تحديد الأخطاء النحوية في وقت الترجمة وتحدث بسبب عدم التزام الكود بقواعد لغة البرمجة.

من ناحية أخرى ، لا يمكن تحديد الأخطاء المنطقية وأخطاء وقت التشغيل بواسطة بيئة التطوير المتكاملة (IDE) وغالبًا ما يكون من الصعب تصحيحها وإصلاحها. يعد حل الأخطاء عملية تستغرق وقتًا طويلاً وتتطلب الكثير من التصحيح.

التصحيح هو عملية يحاول فيها المرء فهم سبب عدم عمل الشفرة المكتوبة كما هو متوقع. من السهل حل المشكلة عندما نعرف الخطأ والخطوط الدقيقة في الكود الذي يحدث فيه. ومن ثم ، فإن التسجيل مفيد جدًا في تصحيح الأخطاء البرمجية.

ما هو التسجيل؟

التسجيل هو تقنية يتم من خلالها التقاط الرسائل أثناء تنفيذ البرنامج. يتعين على المرء تسجيل تلك الرسائل فقط ، مما قد يساعدهم في تصحيح الأخطاء. لذا ، فإن معرفة وقت إضافة بيانات السجل إلى الكود أمر مهم للغاية. أيضًا ، التفريق بين عبارات السجل ضروري بنفس القدر. هناك مستويات مختلفة في التسجيل ، مثل المعلومات والتحذير والخطأ وتصحيح الأخطاء والإسهاب. تستخدم عبارات الخطأ والتحذير لمعالجة الاستثناءات.

البيانات التي يتم إرجاعها من الوظائف ، والنتائج بعد معالجة المصفوفة ، والبيانات المسترجعة من واجهات برمجة التطبيقات ، وما إلى ذلك ، هي بعض الأمثلة على البيانات التي يمكن تسجيلها باستخدام بيانات المعلومات. يتم استخدام سجلات التصحيح والتفصيل لإعطاء وصف تفصيلي للأخطاء.

يوفر سجل التصحيح معلومات حول تتبع المكدس ، ومعلمات الإدخال والإخراج ، وما إلى ذلك. “Verbose” ليس مفصلاً مثل سجل “التصحيح” ولكنه يعطي قائمة بجميع الأحداث التي حدثت. يتم كتابة السجلات إلى وحدة التحكم والملفات ودفق الإخراج. يمكن استخدام أدوات إدارة السجل للتسجيل المنظم والمنسق.

تسجيل Node.js

Nodejs هي بيئة تشغيل جافا سكريبت. تطبيقات Node.js غير متزامنة وغير محظورة ، وتُستخدم في الأنظمة كثيفة البيانات وفي الوقت الفعلي. أفضل طريقة لمعرفة المزيد حول Node.js هي الاطلاع على دروس Node.js ووثائقها. التسجيل مطلوب لتحسين الأداء واستكشاف الأخطاء وإصلاحها وتتبع الأخطاء. يمكن تسجيل الدخول إلى Node.js باستخدام وظيفة console.log المدمجة. أيضًا ، ترتبط وظيفة التصحيح بحزم متعددة ويمكن استخدامها بفعالية.

يتم استخدام البرامج الوسيطة لإدارة الطلبات والاستجابات. يمكن أن تكون البرامج الوسيطة تطبيقًا أو أي إطار عمل جافا سكريبت آخر. يمكن تسجيل الدخول إلى البرامج الوسيطة من خلال التطبيقات وأجهزة التوجيه. يجب أن يستخدم أي مسجل Node.js الأمر npm أو yarn install لتثبيت أدوات التسجيل.

يرمز Npm إلى “Node Package Manager” ، بينما يرمز YARN إلى “مع ذلك مفاوض موارد آخر”. ومع ذلك ، يُفضل الغزل على npm لأنه أسرع ويقوم بتثبيت الحزم بشكل متوازي.

بعض من أفضل المسجلات Node.js مذكورة أدناه:

بينو

Pino هي مكتبة تعد واحدة من أفضل أدوات التسجيل لتطبيقات Node.js. إنه مفتوح المصدر وسريع للغاية ويسجل البيانات بتنسيق JSON سهل القراءة. بعض مستويات سجل Pino هي – رسائل التصحيح والتحذير والخطأ والمعلومات. يمكن استيراد نسخة مسجل Pino إلى المشروع ، ويجب استبدال عبارات console.log بعبارات logger.info.

  ماذا تفعل قبل بيع iPhone الخاص بك أو التخلي عنه أو تداوله

استخدم الأمر التالي لتثبيت Pino:

$ npm install pino   

السجلات التي تم إنشاؤها معقدة وفي تنسيق JSON ، مع إبراز رقم سطر السجل ، ونوع السجل ، والوقت الذي تم فيه تسجيله ، وما إلى ذلك. يتسبب Pino في الحد الأدنى من تسجيل النفقات العامة في أحد التطبيقات وهو مرن للغاية أثناء معالجة السجلات.

يمكن دمج Pino مع أطر عمل الويب مثل Hapi و Restify و Express وما إلى ذلك. يمكن أيضًا تخزين السجلات التي تم إنشاؤها بواسطة Pino في ملفات. يستخدم خيوط Worker للتشغيل ومتوافق مع TypeScript.

وينستون

يدعم Winston التسجيل في العديد من أطر عمل الويب مع تركيزه الأساسي على المرونة وقابلية التوسع. وهو يدعم أنواعًا متعددة من النقل ويمكنه تخزين السجلات في مواقع الملفات المختلفة. وسائل النقل هي الأماكن التي يتم فيها تخزين رسائل السجل.

إلى جانب بعض وسائل النقل المضمنة مثل Http و Console و File و Stream ، فإنه يدعم وسائل النقل الأخرى مثل Cloud watch و MongoDB. يفعل تسجيل تحت مستويات وأشكال مختلفة. تشير مستويات التسجيل إلى خطورة المشكلة.

مستويات التسجيل المختلفة كما هو موضح أدناه:

{
  error: 0,
  warn: 1,
  info: 2,
  http: 3,
  verbose: 4,
  debug: 5,
  silly: 6
}

يمكن تخصيص تنسيق إخراج السجل وتصفيته ودمجه أيضًا. تتضمن السجلات معلومات حول الطابع الزمني ، والتسميات المرتبطة بالسجل ، والميلي ثانية المنقضية من السجل السابق ، وما إلى ذلك.

ويتعامل وينستون أيضًا مع الاستثناءات والوعود التي لم يتم الوفاء بها. يوفر ميزات إضافية مثل حفظ وقت تشغيل الاستعلام ، وسجلات التدفق ، وما إلى ذلك. أولاً ، يتعين على المرء تثبيت Winston. بعد ذلك ، يتم إنشاء كائن تكوين Winston ، إلى جانب النقل ، لتخزين السجل. يتم إنشاء كائن المسجل باستخدام وظيفة createLogger () ، ويتم تمرير رسالة السجل إليه.

عقدة بنيان

يستخدم Bunyan للتسجيل السريع في node.js بتنسيق JSON. كما يوفر أداة CLI (واجهة سطر الأوامر) لعرض السجلات. إنه خفيف الوزن ويدعم بيئات تشغيل مختلفة مثل Node.js و Browserify و WebPack و NW.js. تم إضفاء مزيد من الجمال على تنسيق JSON للسجلات باستخدام وظيفة الطباعة الجميلة. تحتوي السجلات على مستويات مختلفة مثل الفادحة والخطأ والتحذير والمعلومات والتصحيح والتتبع ؛ يرتبط كل منها بقيمة عددية.

يتم تسجيل جميع المستويات فوق المستوى المحدد للمثيل. دفق بنيان هو مكان يتم فيه تسجيل النواتج. يمكن تسجيل المكونات الفرعية للتطبيق باستخدام وظيفة log.child (). جميع قطع الأشجار الأطفال مقيدة بتطبيق رئيسي محدد. يمكن أن يكون نوع الدفق ملفًا ، أو ملفًا دوارًا ، أو بيانات أولية ، وما إلى ذلك.

var bunyan = require('bunyan');
var log = bunyan.createLogger({
    name: "foo",
    streams: [
        {
            stream: process.stderr,
            level: "debug"
        },
        ...
    ]
});

كما يدعم Bunyan تسجيل DTrace. تتضمن التحقيقات المتضمنة في تسجيل DTrace تتبع السجل ، وتحذير السجل ، وخطأ السجل ، ومعلومات السجل ، وتصحيح الأخطاء ، والسجل الفادح. يستخدم Bunyan المسلسلات لإنتاج السجلات بتنسيق JSON. لا تطرح وظائف المسلسل استثناءات وهي دفاعية.

تسجيل مستوى

يستخدم Loglevel لتسجيل الدخول في تطبيقات Javascript. إنه أيضًا أحد أفضل مسجلات Node.js لأنه خفيف الوزن وبسيط. يقوم بتسجيل المستوى المحدد ويستخدم ملفًا واحدًا بدون تبعيات للتسجيل. مستوى السجل الافتراضي هو “تحذير”. تم تنسيق مخرجات السجل جيدًا جنبًا إلى جنب مع أرقام الأسطر. بعض الطرق المستخدمة في التسجيل هي التتبع والتصحيح والتحذير والخطأ والمعلومات.

هم مرنون ضد الفشل في أي بيئة. getLogger () هي الطريقة المستخدمة لاسترداد كائن المسجل. يمكن دمجه مع المكونات الإضافية الأخرى أيضًا لتوسيع ميزاته. تتضمن بعض المكونات الإضافية loglevel-plugin-prefix و loglevel-plugin-remote و ServerSend و DEBUG. يظهر أدناه المكون الإضافي لإضافة رسائل البادئة إلى التسجيل:

var originalFactory = log.methodFactory;
log.methodFactory = function (methodName, logLevel, loggerName) {
    var rawMethod = originalFactory(methodName, logLevel, loggerName);

    return function (message) {
        rawMethod("Newsflash: " + message);
    };
};
log.setLevel(log.getLevel()); // Be sure to call setLevel method in order to apply plugin

يتم تشغيل البنيات باستخدام الأمر npm run dist ، ويمكن تشغيل الاختبارات باستخدام الأمر npm test. يدعم مستوى السجل حزم Webjar و Bower و Atmosphere. يتم إصدار إصدار جديد من Loglevel كلما تمت إضافة ميزات جديدة.

  كيفية تغيير كلمة مرور معرف Apple على iPhone

سيجنال

يتكون Signale من 19 أداة تسجيل لتطبيقات Javascript. وهو يدعم TypeScript وتسجيل النطاق. يتكون من أجهزة ضبط الوقت التي تساعد في تسجيل الطابع الزمني والبيانات واسم الملف. بصرف النظر عن المسجلات التسعة عشر مثل الانتظار ، الكامل ، الفادح ، المفضل ، المعلومات ، وما إلى ذلك ، يمكن للمرء إنشاء سجلات مخصصة.

يتم إنشاء السجلات المخصصة عن طريق تعريف كائن JSON والحقول ببيانات المسجل. يمكن أيضًا إنشاء أدوات قطع الأشجار التفاعلية. عندما يتم تعيين المسجل التفاعلي على “صحيح” ، فإن القيم الجديدة من أدوات التسجيل التفاعلية تلغي القيم القديمة.

أفضل جزء في Signale هو القدرة على تصفية المعلومات السرية أو الحساسة. يتم تخزين العديد من الأسرار في مصفوفة. addSecrets () و clearSecrets () هما الدالتان المستخدمتان لإضافة ومسح الأسرار من المصفوفة. يستخدم Boostnote و Docz و Shower و Taskbook و Vant Signale للتسجيل. فيما يلي بناء جملة استدعاء واجهات برمجة التطبيقات من Signale:

signale.<logger>(message[,message]|messageObj|errorObj)

تجاوز عدد تنزيلات Signale مليون في وقت كتابة هذا المقال.

الراسم

يستخدم Tracer لإنتاج رسائل تسجيل مفصلة. تتكون رسائل التسجيل من الطوابع الزمنية وأسماء الملفات وأرقام الأسطر وأسماء الأساليب. يمكن تثبيت حزم المساعد لتخصيص تنسيق تسجيل الإخراج. يمكن تثبيت الحزم المساعدة باستخدام الأمر التالي.

 npm install -dev tracer

يدعم Tracer نقل الملفات والدفق و MongoDB. وهو يدعم وحدة التحكم في اللون وظروف التصفية في التسجيل. في البداية ، يجب تثبيت أداة التتبع باستخدام تثبيت npm. ثانيًا ، يجب إنشاء كائن المسجل ، ويجب تحديد نوع وحدة التحكم. بعد ذلك ، يمكن تحديد مستويات أو أنواع السجل المختلفة فوق الكائن لمزيد من التسجيل.

يمكن إنشاء عوامل تصفية مخصصة عن طريق تحديد وظائف متزامنة مع منطق الأعمال الموجود في جسم الوظيفة. يمكن أيضًا استخدام القوالب المصغرة مثل tinytim لتسجيل النظام.

Cabin.js

تُستخدم الكابينة للتسجيل من جانب الخادم والعميل لتطبيقات node.js. يتم استخدامه عندما يكون إخفاء المعلومات الحساسة والحرجة مطلوبًا. يتضمن ذلك أرقام بطاقات الائتمان ورؤوس BasicAuth والأملاح وكلمات المرور ورموز CSRF وأرقام الحسابات المصرفية. يُظهر مقتطف الشفرة أدناه التسجيل باستخدام Cabin.js.

const Cabin = require('cabin');
const cabin = new Cabin();
cabin.info('hello world');
cabin.error(new Error('oops!'));

يتكون من أكثر من 1600 اسم حقل. كما أنه يتبع مبدأ إحضار المسجل الخاص بك (BYOL). وهذا يجعله متوافقًا مع العديد من أجهزة قطع الأشجار الأخرى مثل Ax ، و Pino ، و Bunyan ، و Winston ، وما إلى ذلك. ويقلل من تكاليف التخزين في الأقراص بسبب التدفق التلقائي والمخازن المؤقتة للكابينة. إنه متوافق عبر الأنظمة الأساسية ويسهل تصحيحه.

يتطلب التسجيل من جانب الخادم استخدام البرامج الوسيطة للتوجيه وتسجيل الإخراج التلقائي. يتطلب التسجيل من جانب المستعرض طلبات XHR والبرامج النصية. يستخدم Axe الذي يعرض البيانات الوصفية ، أي بيانات حول البيانات وتتبعات المكدس وأخطاء أخرى. SHOW_STACK و SHOW_META عبارة عن متغيرات منطقية تم ضبطها على صواب أو خطأ لإظهار أو إخفاء آثار المكدس والبيانات الوصفية.

  كيفية تنزيل الملفات من ملف تورنت: شرح تنزيل التورنت

Npmlog

Npmlog هو نوع أساسي من المسجلات التي تستخدمها npm. بعض طرق التسجيل المستخدمة هي المستوى ، والتسجيل ، و maxRecordSize ، والبادئة ، والنمط ، والعنوان ، والدفق. كما أنه يدعم التسجيل الملون. مستويات التسجيل المختلفة سخيفة ، مطولة ، معلومات ، تحذير ، http وخطأ. يظهر أدناه نموذج مقتطف الشفرة لاستخدام سجل npm.

var log = require('npmlog')

// additional stuff ---------------------------+
// message ----------+                         |
// prefix ----+      |                         |
// level -+   |      |                         |
//        v   v      v                         v
    log.info('fyi', 'I have a kitty cat: %j', myKittyCat)

يتم منع كافة الرسائل إذا تم تحديد “Infinity” كمستوى السجل. إذا تم تحديد “-Infinity” كمستوى السجل ، فيجب تمكين خيار رؤية رسائل التسجيل لرؤية السجلات.

الأحداث وكائنات الرسائل تستخدم للتسجيل. يتم إرسال رسائل البادئة عند استخدام أحداث البادئة. تُستخدم كائنات النمط لتنسيق السجلات ، مثل إضافة لون إلى النص والخلفية ، ونمط الخط مثل غامق ومائل وتسطير ، وما إلى ذلك. بعض حزم سجل npm هي brolog و npmlogger و npmdate log ، إلخ.

رور

Roarr هو مسجل لـ Node.js لا يتطلب تهيئة وينتج بيانات منظمة. لديها CLI والمتغيرات البيئية. إنه متوافق مع المتصفح. يمكن أن يتكامل مع Fastify ، Fastify ، Elastic Search ، إلخ. يمكنه التمييز بين كود التطبيق ورمز التبعية. تتكون كل رسالة سجل من سياق ورسالة وتسلسل ووقت وإصدار. تتضمن مستويات السجل المختلفة التتبع ، وتصحيح الأخطاء ، والمعلومات ، والتحذير ، والخطأ ، والخطأ. نموذج مقتطف الشفرة حول كيفية إجراء التسجيل هو Roarr كما يلي:

import {
  ROARR,
} from 'roarr';

ROARR.write = (message) => {
  console.log(JSON.parse(message));
};

أيضًا ، يمكن إجراء تسلسل للأخطاء ، مما يعني أنه يمكن تسجيل مثيل الخطأ مع سياق الكائن. بعض متغيرات البيئة الخاصة بـ Node.js و Roarr هي ROARR_LOG و ROARR_STREAM. “اعتماد” هي وظيفة تُستخدم مع node.js لتمرير خصائص السياق إلى مستويات مختلفة. يمكن استخدام الوظائف الفرعية مع البرامج الوسيطة أيضًا أثناء التسجيل.

الكلمات الأخيرة

التسجيل هو طريقة لتتبع الأنشطة والأحداث المختلفة أثناء تنفيذ البرنامج. يلعب التسجيل دورًا حيويًا في تصحيح أخطاء التعليمات البرمجية. كما أنه يساعد في زيادة قابلية قراءة الكود. Node.js هي بيئة تشغيل جافا سكريبت مفتوحة المصدر. بعض من أفضل أدوات تسجيل Node.js هي Pino و Winston و Bunyan و Signale و Tracer و Npmlog وما إلى ذلك. كل نوع من المسجلات له ميزاته الخاصة مثل التنميط والتصفية والتدفق والنقل.

تدعم بعض أدوات قطع الأشجار وحدات التحكم الملونة ، والبعض الآخر مناسب للتعامل مع المعلومات الحساسة. تساعد السجلات التفصيلية والمنسقة المطورين بشكل أكبر أثناء محاولتهم إصلاح الأخطاء في التعليمات البرمجية الخاصة بهم. يُفضل تنسيق JSON بشكل عام للتسجيل لأنه يسجل البيانات في شكل أزواج من المفاتيح والقيمة مما يجعلها سهلة الاستخدام.

يمكن أيضًا دمج المسجلات مع تطبيقات أخرى ومتوافقة مع عدة مستعرضات. يُنصح دائمًا بالنظر في الاحتياجات والتطبيقات التي تقوم بإنشائها قبل اختيار نوع المسجل الذي تريد استخدامه.

يمكنك أيضًا الاطلاع على كيفية تثبيت Node.js و NPM على نظامي التشغيل Windows و macOS.