باعتبارك أحد مطوري Node.js، فإن التسجيل هو كل شيء تقريبًا عندما يتعلق الأمر بتصحيح أخطاء تطبيقاتك ومراقبتها وصيانتها. ولكن هل تستخدم أفضل ممارسات التسجيل؟ دعنا نستكشف بعض تقنيات التسجيل التي يمكن أن تنقل تطبيقات Node.js الخاصة بك إلى المستوى التالي.
لمعرفة المزيد، يمكنك الاطلاع على مشاركة المدونة الكاملة.
؟ الأداة: ونستون
؟ الوصف: مكتبة تسجيل متعددة الاستخدامات لـ Node.js
؟ الميزات الرئيسية:
javascriptCopyconst winston = require('winston'); const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }) ] });
؟ الأداة: مورغان
؟ الوصف: تبسيط عملية تسجيل طلب HTTP في Express.js
؟ الميزات الرئيسية:
javascriptCopyconst express = require('express'); const morgan = require('morgan'); const app = express(); app.use(morgan('combined'));
؟ الأداة: بنيان
؟ الوصف: تسجيل JSON منظم لتطبيقات Node.js
؟ الميزات الرئيسية:
javascriptCopyconst bunyan = require('bunyan'); const log = bunyan.createLogger({name: "myapp"}); log.info("Hi"); log.warn({lang: 'fr'}, "Au revoir");
؟ الأداة: بينو
؟ الوصف: تسجيل حمل منخفض مع إخراج JSON
؟ الميزات الرئيسية:
javascriptCopyconst pino = require('pino'); const logger = pino(); logger.info('hello world'); logger.error('this is at error level');
؟ الأداة: التصحيح
؟ الوصف: أداة مساعدة صغيرة لتصحيح أخطاء Node.js
؟ الميزات الرئيسية:
javascriptCopyconst debug = require('debug')('http'); debug('booting %o', name);
؟ الأداة: Log4js
؟ الوصف: تحويل إطار عمل log4j إلى JavaScript
؟ الميزات الرئيسية:
javascriptCopyconst log4js = require("log4js"); log4js.configure({ appenders: { cheese: { type: "file", filename: "cheese.log" } }, categories: { default: { appenders: ["cheese"], level: "error" } } }); const logger = log4js.getLogger("cheese"); logger.error("Cheese is too ripe!");
؟ الأداة: ELK Stack
؟ الوصف: مجموعة قوية لإدارة السجلات وتحليلها
؟ الميزات الرئيسية:
javascriptCopyconst winston = require('winston'); const Elasticsearch = require('winston-elasticsearch'); const esTransportOpts = { level: 'info', clientOpts: { node: 'http://localhost:9200' } }; const logger = winston.createLogger({ transports: [ new Elasticsearch(esTransportOpts) ] });
؟ الأداة: الحراسة
؟ الوصف: تتبع الأخطاء ومراقبة الأداء في الوقت الفعلي
؟ الميزات الرئيسية:
javascriptCopyconst Sentry = require("@sentry/node"); Sentry.init({ dsn: "https://[email protected]/0" }); try { someFunction(); } catch (e) { Sentry.captureException(e); }
؟ الأداة: بقايا جديدة
؟ الوصف: مراقبة شاملة لأداء التطبيق
؟ الميزات الرئيسية:
javascriptCopyconst newrelic = require('newrelic'); newrelic.setTransactionName('myCustomTransaction'); // Your application code here
؟ الأداة: Logly
؟ الوصف: خدمة إدارة وتحليلات السجلات السحابية
؟ الميزات الرئيسية:
javascriptCopyconst winston = require('winston'); const { Loggly } = require('winston-loggly-bulk'); winston.add(new Loggly({ token: "YOUR-TOKEN", subdomain: "YOUR-SUBDOMAIN", tags: ["Winston-NodeJS"], json: true }));
winston.log('info', "Hello World from Node.js!");
بغض النظر عن الأداة التي تختارها، فإن تنفيذ التسجيل المنظم يمكن أن يحسن بشكل كبير قدرات تحليل السجل لديك:
javascriptCopylogger.info({ event: 'user_login', userId: user.id, timestamp: new Date().toISOString(), ipAddress: req.ip });
باستخدام هذه الأدوات والممارسات الإضافية، سيكون لديك إستراتيجية تسجيل شاملة تغطي كل شيء بدءًا من التصحيح الأساسي وحتى مراقبة أداء التطبيقات المتقدمة. تذكر أن مفتاح التسجيل الفعال هو اختيار الأدوات المناسبة لاحتياجاتك المحددة وتطبيق أفضل الممارسات باستمرار عبر قاعدة التعليمات البرمجية الخاصة بك.
إذا كنت بحاجة إلى مساعدة في تصحيح أخطاء تطبيق الويب الخاص بك، فراجع https://alerty.ai لمعرفة المزيد حول مراقبة الواجهة الأمامية بسهولة.
تسجيل سعيد، وأتمنى أن تعمل تطبيقات Node.js بسلاسة! ??
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3