مرحبًا يا من هناك! كمورد لقارورة التصفية، فقد رأيت نصيبي العادل من المشكلات عندما يتعلق الأمر بمعالجة رسائل الخطأ في تطبيقات Flask. في هذه المدونة، سأرشدك إلى كيفية تصفية رسائل خطأ Flask المزعجة، حتى تتمكن من الحصول على تجربة تطوير ونشر أكثر سلاسة.
لماذا رسائل خطأ قارورة التصفية؟
أولاً، دعنا نتحدث عن سبب رغبتك في تصفية رسائل خطأ Flask. عندما تقوم بتطوير تطبيق Flask، غالبًا ما تتلقى مجموعة كاملة من رسائل الخطأ. بعضها مفيد جدًا لتصحيح الأخطاء، كما هو الحال عندما تحاول معرفة سبب عدم عمل وظيفة معينة. ولكن البعض الآخر يمكن أن يكون مجرد ضجيج، وخاصة في بيئة الإنتاج.
على سبيل المثال، قد تكون لديك بعض التحذيرات غير الضارة التي تستمر في الظهور، أو رسائل الخطأ التي تحتوي على معلومات حساسة. يمكن أن تساعدك تصفية هذه الرسائل في التركيز على المشكلات الحقيقية، وكذلك حماية أمان تطبيقك.
فهم رسائل خطأ القارورة
قبل أن تتمكن من البدء في التصفية، عليك أن تفهم نوع رسائل الخطأ التي ينشئها Flask. يستخدم Flask نظام تسجيل Python للتعامل مع رسائل الخطأ. هناك مستويات مختلفة من التسجيل، بما في ذلك التصحيح والمعلومات والتحذير والخطأ والحرج.
- تصحيح: هذه هي الرسائل الأكثر تفصيلاً، والتي تُستخدم عادةً أثناء التطوير لتعقب الأخطاء.
- معلومات: معلومات عامة حول تشغيل التطبيق.
- تحذير: يشير إلى المشكلات المحتملة التي قد تسبب مشكلات في المستقبل.
- خطأ: حدث خطأ ما، ولكن لا يزال بإمكان التطبيق الاستمرار في التشغيل.
- شديد الأهمية: خطأ جسيم قد يتسبب في توقف التطبيق عن العمل.
افتراضيًا، يقوم Flask بتسجيل الرسائل على مستوى INFO في الإنتاج ومستوى DEBUG في التطوير.
التصفية الأساسية مع التسجيل
إن أبسط طريقة لتصفية رسائل خطأ Flask هي استخدام وحدة تسجيل Python. يمكنك ضبط مستوى التسجيل لإظهار الرسائل التي تهمك فقط.
استيراد التسجيل من القارورة import Flask app = Flask(__name__) # اضبط مستوى التسجيل على تحذير logging.basicConfig(level=logging.WARNING) @app.route('/') def hello_world(): return 'Hello, World!' إذا __name__ == '__main__': app.run()
في هذا المثال، نقوم بتعيين مستوى التسجيل على تحذير. وهذا يعني أنه سيتم تسجيل رسائل التحذير والخطأ والرسائل الحرجة فقط. سيتم تجاهل رسائل DEBUG وINFO.
مرشحات مخصصة
في بعض الأحيان، قد ترغب في أن تكون أكثر تحديدًا فيما يتعلق بالتصفية. يمكنك إنشاء عوامل تصفية مخصصة لتسجيل الرسائل التي تطابق معايير معينة فقط.
استيراد التسجيل من القارورة import Flask app = Flask(__name__) class CustomFilter(logging.Filter): def filter(self, Record): # فقط سجل الرسائل التي تحتوي على كلمة "هام" قم بإرجاع "مهم" في السجل.getMessage() # أنشئ مسجلاً وأضف عامل التصفية المخصص logger = logging.getLogger() custom_filter = CustomFilter() logger.addFilter(custom_filter) @app.route('/') def hello_world(): logger.info('هذه رسالة غير مهمة') logger.warning('هذا تحذير مهم') return 'مرحبًا أيها العالم!' إذا __name__ == '__main__': app.run()
في هذا المثال، قمنا بإنشاء مرشح مخصص يسمح فقط بتسجيل الرسائل التي تحتوي على كلمة "مهم". لذلك، لن يتم تسجيل رسالة المعلومات، ولكن سيتم تسجيل رسالة التحذير.
التصفية في الإنتاج
في بيئة الإنتاج، ستحتاج إلى توخي المزيد من الحذر فيما يتعلق برسائل الخطأ. لا تريد الكشف عن أي معلومات حساسة، مثل كلمات مرور قاعدة البيانات أو مفاتيح واجهة برمجة التطبيقات.
إحدى الطرق للقيام بذلك هي استخدام منسق التسجيل لإخفاء المعلومات الحساسة.
استيراد التسجيل من القارورة import Flask app = Flask(__name__) class SensitiveInfoFilter(logging.Filter): def filter(self, Record): message = Record.getMessage() # استبدل المعلومات الحساسة بالعلامات النجمية Masked_message = message.replace('password', '****') Record.msg = Masked_message return True # إنشاء مسجل وإضافة المعلومات الحساسة filter logger = logging.getLogger() Sensitive_info_filter = SensitiveInfoFilter() logger.addFilter(sensitive_info_filter) @app.route('/') def hello_world(): logger.error('كلمة مرور قاعدة البيانات هي كلمة المرور') return 'Hello, World!' إذا __name__ == '__main__': app.run()
في هذا المثال، نقوم باستبدال كلمة "password" بالعلامات النجمية في جميع رسائل الخطأ. بهذه الطريقة، إذا تم تسجيل رسالة خطأ، فلن يتم الكشف عن المعلومات الحساسة.
استخدام أدوات الطرف الثالث
هناك أيضًا أدوات تابعة لجهات خارجية يمكنها مساعدتك في تصفية رسائل خطأ Flask وإدارتها. على سبيل المثال، تعد Sentry أداة شائعة يمكنها التقاط رسائل الخطأ وتجميعها، مما يسهل تحليل المشكلات وإصلاحها.
لاستخدام Sentry with Flask، تحتاج أولاً إلى تثبيت ملفحارس - SDKطَرد:
تثبيت النقطة الحراسة-sdk[قارورة]
وبعد ذلك، يمكنك دمجه في تطبيق Flask الخاص بك:
استيراد Sentry_sdk من Sentry_sdk.integrations.flask استيراد FlaskIntegration من القارورة import Flask sendry_sdk.init( dsn = "YOUR_DSN_HERE"، التكاملات = [FlaskIntegration ()] ) app = Flask (__name__) @app.route ('/') def hello_world (): رفع ValueError ("هذا خطأ اختبار") return "مرحبًا، العالم! إذا __name__ == '__main__': app.run()
سيقوم Sentry بالتقاط رسائل الخطأ وإرسالها إلى لوحة التحكم الخاصة به، حيث يمكنك عرضها وإدارتها.


منتجاتنا من قارورة الترشيح
باعتبارنا موردًا لقارورة الترشيح، فإننا نقدم مجموعة من قوارير الترشيح عالية الجودة لتلبية احتياجات المختبر الخاصة بك. تحقق من لديناقوارير تصفية زجاجية شفافة للمختبرات مزودة بأنبوب علويوقوارير ترشيح Erlenmeyer زجاجية مخروطية الشكل للمختبر مع أنابيب علوية. هذه القوارير مصنوعة من زجاج متين ومصممة لتوفير ترشيح فعال.
خاتمة
تعد تصفية رسائل خطأ Flask جزءًا مهمًا من تطوير تطبيق Flask وصيانته. سواء كنت تستخدم عوامل تصفية التسجيل الأساسية، أو عوامل التصفية المخصصة، أو أدوات الجهات الخارجية، يمكنك جعل رسائل الخطأ الخاصة بك أكثر قابلية للإدارة والأمان.
إذا كنت مهتمًا بقوارير التصفية الخاصة بنا أو كانت لديك أي أسئلة حول تصفية رسائل خطأ Flask، فلا تتردد في التواصل معنا لإجراء مناقشة حول المشتريات. نحن هنا لمساعدتك في العثور على أفضل الحلول لاحتياجاتك.
مراجع
- وثائق تسجيل بايثون
- توثيق القارورة
- توثيق الحراسة
