تسجيل السجلات لـ TypeScript: مكتبة Winston

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة
```html

ما هو Winston ولماذا هو مطلوب؟

Winston هي مكتبة تسجيل شائعة في TypeScript و JavaScript. توفر نظام تسجيل مرن مع دعم للعديد من الناقلات (الإخراج إلى وحدة التحكم، ملف، قاعدة بيانات، HTTP)، ومستويات التسجيل، وتنسيق الرسائل. في المشاريع الكبيرة، يعتبر التسجيل أمرًا بالغ الأهمية لتصحيح الأخطاء والمراقبة وتدقيق إجراءات المستخدم أو النظام. يتيح لك Winston تنظيم السجلات وتصفيتها حسب الأهمية وحفظها بشكل مناسب للتحليل.

كيفية تثبيت Winston في TypeScript

للتثبيت، قم بتنفيذ الأمر في الطرفية:

npm install winston

يوصى أيضًا بتثبيت الأنواع الخاصة بـ TypeScript:

npm install --save-dev @types/winston

الوظائف الأساسية لـ Winston

  • مستويات التسجيل: error, warn, info, verbose, debug, silly (قابلة للتخصيص).
  • الناقلات: Console, File, HTTP, MongoDB, Syslog وغيرها.
  • التنسيق: JSON، نص عادي، طوابع زمنية، ألوان.
  • عدم التزامن: لا يحجب التدفق الرئيسي.
  • ملفات تعريف مخصصة: إنشاء مستويات وناقلات خاصة بك.

مثال على كود TypeScript

import winston from 'winston';

const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.Console({ format: winston.format.simple(), }), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }), ],});

logger.info('تم تشغيل التطبيق');logger.error('خطأ في الاتصال بقاعدة البيانات');

يقوم هذا الكود بإنشاء مسجل يكتب جميع الرسائل بمستوى info وما فوق إلى وحدة التحكم، والأخطاء إلى error.log، وجميع السجلات إلى combined.log.

متى تستخدم Winston

Winston مناسب لأي تطبيقات خادم على Node.js (Express, NestJS, Koa)، والخدمات المصغرة، والأدوات المساعدة لواجهة الأوامر، والبرامج النصية المعقدة. إنه مفيد بشكل خاص في بيئة الإنتاج حيث يكون التخزين المركزي للسجلات وتدوير الملفات والتكامل مع أنظمة المراقبة (ELK, Splunk) مطلوبًا. بالنسبة للمشاريع البسيطة، يمكن استخدام console.log المدمج، لكن Winston يوفر التحكم وقابلية التوسع.

```

توصيات