تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.
يوفر NocoBase نظام تسجيل عالي الأداء يعتمد على pino. في أي مكان يتوفر فيه context، يمكنك الحصول على مثيل للمسجل (logger) عبر ctx.logger لتسجيل السجلات الرئيسية أثناء تشغيل الإضافة (plugin) أو النظام.
تتوافق هذه الطرق مع مستويات تسجيل مختلفة (من الأعلى إلى الأدنى):
| المستوى | الطريقة | الوصف |
|---|---|---|
fatal | ctx.logger.fatal() | أخطاء فادحة، تؤدي عادةً إلى إنهاء البرنامج |
error | ctx.logger.error() | سجلات الأخطاء، تشير إلى فشل الطلب أو العملية |
warn | ctx.logger.warn() | معلومات تحذيرية، تنبه إلى مخاطر محتملة أو حالات غير متوقعة |
info | ctx.logger.info() | معلومات تشغيل عادية |
debug | ctx.logger.debug() | معلومات تصحيح الأخطاء، مخصصة لبيئة التطوير |
trace | ctx.logger.trace() | معلومات تتبع تفصيلية، تستخدم عادةً للتشخيص العميق |
يكون كل إخراج سجل بتنسيق JSON منظم، ويحتوي افتراضيًا على الحقول التالية:
| الحقل | النوع | الوصف |
|---|---|---|
level | number | مستوى السجل |
time | number | الطابع الزمني (بالمللي ثانية) |
pid | number | معرف العملية (Process ID) |
hostname | string | اسم المضيف (Hostname) |
msg | string | رسالة السجل |
| أخرى | object | معلومات السياق المخصصة |
مثال على الإخراج:
يقوم ctx.logger تلقائيًا بحقن معلومات السياق، مثل الإضافة (plugin) الحالية أو الوحدة النمطية أو مصدر الطلب، مما يجعل السجلات قابلة للتتبع بدقة أكبر إلى مصدرها.
مثال على الإخراج (مع السياق):
يمكنك إنشاء مثيلات مسجل (logger) مخصصة في الإضافات (plugins)، مع وراثة أو توسيع التكوينات الافتراضية:
ترث المسجلات الفرعية (child loggers) تكوين المسجل الرئيسي (main logger) وتُرفق السياق تلقائيًا.
تتبع مستويات سجل Pino تعريفًا رقميًا من الأعلى إلى الأدنى، حيث تشير الأرقام الأصغر إلى أولوية أقل.
فيما يلي الجدول الكامل لتسلسل مستويات السجل الهرمي:
| اسم المستوى | القيمة | اسم الطريقة | الوصف |
|---|---|---|---|
fatal | 60 | logger.fatal() | أخطاء فادحة، تؤدي عادةً إلى عدم قدرة البرنامج على الاستمرار في العمل |
error | 50 | logger.error() | أخطاء عامة، تشير إلى فشل الطلب أو استثناءات التشغيل |
warn | 40 | logger.warn() | معلومات تحذيرية، تنبه إلى مخاطر محتملة أو حالات غير متوقعة |
info | 30 | logger.info() | معلومات عامة، تسجل حالة النظام أو العمليات العادية |
debug | 20 | logger.debug() | معلومات تصحيح الأخطاء، لتحليل المشكلات في مرحلة التطوير |
trace | 10 | logger.trace() | معلومات تتبع تفصيلية، للتشخيص المتعمق |
silent | -Infinity | (لا توجد طريقة مقابلة) | إيقاف تشغيل جميع مخرجات السجل |
يقوم Pino فقط بإخراج السجلات التي تكون أكبر من أو تساوي إعداد level الحالي. على سبيل المثال، عندما يكون مستوى السجل info، سيتم تجاهل سجلات debug و trace.
استخدام مسجل السياق (Context Logger)
استخدم ctx.logger في سياقات الإضافة (plugin) أو النموذج أو التطبيق، ليحمل معلومات المصدر تلقائيًا.
التمييز بين مستويات السجل
error لتسجيل استثناءات العملinfo لتسجيل تغييرات الحالةdebug لتسجيل معلومات تصحيح الأخطاء الخاصة بالتطويرتجنب الإفراط في التسجيل
خاصةً عند مستويي debug و trace، يُنصح بتمكينهما فقط في بيئات التطوير.
استخدام البيانات المنظمة
مرر معاملات الكائنات (object parameters) بدلاً من ربط السلاسل النصية (concatenating strings)، مما يساعد في تحليل السجلات وتصفيتها.
باتباع هذه الممارسات، يمكن للمطورين تتبع تنفيذ الإضافات (plugins) بشكل أكثر كفاءة، واستكشاف المشكلات وإصلاحها، والحفاظ على نظام تسجيل منظم وقابل للتوسيع.