التسجيل الفعال للبيانات المعطلة في Go
في المسارات الحرجة، من المفيد تضمين بيانات تسجيل التصحيح/التتبع التي يمكن تبديلها ديناميكيًا في وقت التشغيل. تعتبر هذه الممارسة مثالية لتصحيح أخطاء أنظمة الإنتاج التي يتم إجراؤها دون اتصال بالإنترنت أو أنظمة الاختبار التي تعكس بيئة الإنتاج.
ومع ذلك، هناك متطلب حاسم لهذا النوع من التسجيل: يجب أن يكون للبيانات المعطلة الحد الأدنى من التأثير على الأداء. في C/C، تم تحقيق ذلك من خلال ماكرو LOG الذي منع تقييم الوسيطة حتى يتم التحقق من العلامة.
تنفيذ تسجيل الدخول المعطل في Go
محاكاة هذا السلوك في Go يعرض التحديات. لا يعد استخدام io.Discard مع log.Logger خيارًا لأنه يقوم بتنسيق رسائل السجل حتى عند تعطيله.
محاولة أولية باستخدام بنية EnabledLogger تنفذ واجهة log.Logger، وتمكين/تعطيل التسجيل بناءً على Enabled علَم. ومع ذلك، يظل تقييم الوسيطة غير محظور، مما قد يؤدي إلى مشكلات في الأداء لاستدعاءات الوظائف العشوائية.
حلان بديلان
لمعالجة هذا، هناك حلان:
خيارات أخرى
على الرغم من قواعد التقييم الثابتة لـ Go، هناك بعض الخيارات الإضافية:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3