مقدمة في التسجيل للمبرمجين

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

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

هذا هو الجزء التشخيصي من التسجيل ، وهو الأهم والأساس الذي يمكن للمطورين فهمه بشكل أسهل ، لأنه جزء من روتين عملهم اليومي. هناك جزء آخر يسمى تسجيل التدقيق . عندما يعتني التسجيل التشخيصي بتسجيل الأحداث التي تحدث أثناء وقت التشغيل (استدعاءات الأسلوب ، المدخلات / المخرجات ، مكالمات HTTP ، عمليات تنفيذ SQL) ، يكون تسجيل التدقيق مسؤولاً عن تسجيل أحداث أكثر تجريدية ومنطق عمل. يمكن أن تكون مثل هذه الأحداث إجراءات المستخدم (إضافة / تعديل / إزالة المحتوى ، والمعاملات ، والوصول إلى البيانات) أو أشياء أخرى لها قيمة إدارية أو ، والأهم من ذلك ، قيمة قانونية.

في عالم النهاية الخلفية ، كانت هناك بعض أطر التسجيل الرائعة للاختيار من بينها حيث ظهرت الحاجة إليها كثيرًا في وقت سابق. على سبيل المثال في Java ، يمكنك الاختيار بين محرك التسجيل الخاص بجافا أو java.util.logging أو بعض الأطر الخارجية الرائعة مثل Logback أو Log4j الأكثر شيوعًا.

في عالم الواجهة الأمامية ، لم تصل الأمور إلى هذا الحد حتى الآن ، ولكن هناك خيارات يمكن أن تساعدك على القيام بمسافة إضافية (وبالطبع التخلص من رسائل console.log التافهة). اثنان من مكتبات Javascript للواجهة الأمامية هما مستوى السجل الأدنى ولكن القوي و browser-bunyan ، وهو منفذ لوحدة تسجيل node.js الرائعة للمتصفح. بعض الميزات مشتركة بين هذه الأطر ولكن هناك ميزات فريدة يجب أن توجه المطور لاختيار أي منها يحتاج. يمكن عرض استخدام هؤلاء مع بعض الأمثلة.

البيان: يجب تنظيم سجلات الخادم. تنسيق JSON جيد. لنفعل ذلك.

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

بصرف النظر عن قدرة تصدير JSON ، لدى Bunyan مفهوم الحطابين التابعين ، والذي يمكن استخدامه لإنشاء أدوات قطع مختلفة لمكونات مختلفة من التطبيق. يوفر ذلك مرونة كبيرة فيما يتعلق بالحقول والمعلومات الإضافية التي تريد تضمينها في أجزاء محددة من التطبيق الخاص بك فقط. يدمج Bunyan أيضًا التدفقات ، وهي إعدادات "الإخراج" الخاصة بأدوات التسجيل. يمكنك إنشاء تدفقات متعددة وتعيين خام واحد أكثر لكل مسجل ويمكن أن يكون لكل تدفق إعدادات مختلفة مثل الحد الأدنى لمستوى السجلات المطلوب تسجيله (المستويات المقبولة من Bunyan هي فادحة / خطأ / تحذير / معلومات / تصحيح / تتبع) أو طريقة الإخراج ( في المتصفح ، لا يوجد سوى خيارات متعلقة بوحدة التحكم ، ولكن في بيئة Node ، يمكنك القيام بأشياء أخرى مثل كتابة السجلات إلى ملف معين).

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

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

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

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