سؤال

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

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؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top