تغيير log level في Production؟

أهلاً بك!

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

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

شكرا لك!

ملاحظة: فقط لتهدئة أي مخاوف محتملة بشأن تعليقي أعلاه حول المشكلات التي تحدث فقط في بيئات الإنتاج، أنا أستخدم Discourse بطريقة غير قياسية إلى حد ما تتضمن عددًا كبيرًا من الفئات؛ المشكلات التي أواجهها على الأرجح لا يواجهها أي مثيل آخر لـ Discourse. :slight_smile:

3 إعجابات

لقد كان هذا محيرًا لي مؤخرًا.

image

لقد أكدت أن مستوى السجل لدي هو info، ومع ذلك لا يظهر أي قدر من:

Rails.logger.info "blah blah blah"

ويظل /errors عنيدًا عند warn - ما الذي أغفله؟

هل لدى أي شخص حل لهذا؟

إنه أمر محبط للغاية

image

… ومع ذلك لا يمكنني رؤية سجلات مستوى المعلومات في /logs!

تبديل “info” لا يفعل شيئًا:

لست متأكدًا كيف يُفترض بنا تشخيص أنواع معينة من المشكلات التي تحدث فقط في بيئة الإنتاج بدون هذا … :sweat_smile:

ما الذي يمنع سجلات مستوى المعلومات؟

المزيد من الأشياء التي جربتها:

  • لقد تحققت من production.log والمعلومات التي أريدها موجودة هناك!
  • لقد نظرت إلى مخرجات Logster.config على وحدة تحكم rails وهي ليست مفيدة بشكل واضح.
  • نفس الشيء بالنسبة لـ /vendor/bundle/ruby/3.2.0/gems/logster-2.19.1/lib/logster/configuration.rb

لذا ما زلت في حيرة من أمري لماذا لا تظهر سجلات مستوى المعلومات في /logs

من الواضح أن هناك شيئًا ما يقوم بتصفية سجلات مستوى المعلومات بين production.log و Logster.

إعجابَين (2)

إذا فهمت الأمور بشكل صحيح، فهي تقمع المعلومات وتصحيح الأخطاء في وضع الإنتاج حسب التصميم. Blaming logster/lib/logster/rails/railtie.rb at main · discourse/logster · GitHub

store.level = Logger::Severity::WARN if Rails.env.production?

من منشور مدونة

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

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

إعجابَين (2)

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

إعجاب واحد (1)