القضبان: غير قادر على الوصول إلى ملف السجل
-
08-07-2019 - |
سؤال
وأحصل على الخطأ التالية عند إعادة تشغيل بلدي القضبان التطبيق. لقد كان لي هذه المشكلة من قبل، على خادم آخر مع التطبيق آخر، ولكن لا يمكن أن نتذكر ما هي المشكلة، أو كيف حلها.
Rails Error: Unable to access log file. Please ensure that /apps/staging/releases/20090310162127/log/staging.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
وأنا نشر لمجموعة الهجين مع كابيسترانو على أوبونتو.
وعندما أفعل ls -l /apps/staging/releases/20090310162127/log/staging.log
والنتيجة هي:
-rw-rw-rw- 1 me grp 51 Mar 10 16:07 /apps/staging/releases/20090310162127/log/staging.log
ودير السجل هو link
ل/ التطبيقات / انطلاق / مشترك / السجل.
ما الذي يحدث؟
المحلول
واتضح أن تكون القضبان خفية علة:
وعندما يتم رفع استثناء في هذين الخطين
logger = ActiveSupport::BufferedLogger.new(configuration.log_path)
logger.level = ActiveSupport::BufferedLogger.const_get(configuration.log_level.to_s.upcase)
والقضبان يفترض أنه لا يمكن العثور على ملف السجل. ومع ذلك، حدث الخطأ الفعلي في السطر الثاني: NameError لأن الثابت غير صحيح. والسبب هو أن هناك مستوى السجل إرث في ملف التكوين لي:
config.log_level = Logger::INFO
والقضبان 2.2 يستخدم المسجل الخاصة به، ولا يفهم السطر أعلاه.
والحل: إزالة الخط، أو الاستخدام:
config.log_level = :info
نصائح أخرى
هل القضبان تشغيل وme
؟ إن لم يكن، ما المستخدم هو تشغيل و؟ وjail
'ed هذا المستخدم؟ لا يكون لدى المستخدم أذونات اجتياز لجميع مكونات /apps/staging/shared/log
وكذلك جميع مكونات /apps/staging/releases/20090310162127/log
؟