2009-03-10 11 views
13

मुझे अपने रेल ऐप को पुनरारंभ करते समय निम्न त्रुटि मिलती है। मुझे यह समस्या पहले किसी अन्य ऐप के साथ, किसी अन्य ऐप के साथ मिली है, लेकिन यह याद नहीं कर सकता कि समस्या क्या थी, या मैंने इसे कैसे हल किया।रेल: लॉग फ़ाइल तक पहुंचने में असमर्थ

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 

लॉग निर्देशिका के लिए/apps/मचान/साझा/लॉग एक link है।

क्या चल रहा है?

उत्तर

26

यह पता चला एक सूक्ष्म रेल बग होने के लिए:

जब एक अपवाद इन दो पंक्तियों

logger = ActiveSupport::BufferedLogger.new(configuration.log_path) 
logger.level = ActiveSupport::BufferedLogger.const_get(configuration.log_level.to_s.upcase) 

रेल मान लिया गया यह लॉग फ़ाइल नहीं मिल सकता है में उठाया गया है। हालांकि, दूसरी पंक्ति में वास्तविक त्रुटि आई: एक नाम त्रुटि क्योंकि निरंतर गलत है।

config.log_level = Logger::INFO 

रेल 2.2 अपनी ही लकड़हारा का उपयोग करता है, और इसके बाद के संस्करण पंक्ति को नहीं समझता: कारण यह है कि वहाँ मेरे विन्यास फाइल में एक विरासत लॉग स्तर था।

समाधान: लाइन हटाने, या का उपयोग करें:

config.log_level = :info 
+0

जानना अच्छा है। मुझे लगता है कि मैं इस मुद्दे पर खुद कुछ बार आया हूं। –

+0

जब मैंने अपने मेलर और लॉगर कमांड को स्विच किया तो मैंने इसमें भाग लिया: config.log_level =: sendmail डी ओह! – wesgarrison

+0

इसके लिए धन्यवाद, यह सोच रहा था कि यह वर्चुअलबॉक्स बग था। –

0

क्या रेल me के रूप में चल रहे हैं? यदि नहीं, तो यह किस उपयोगकर्ता के रूप में चल रहा है? क्या वह उपयोगकर्ता jail 'ed है? क्या उपयोगकर्ता के पास /apps/staging/shared/log के सभी घटकों के साथ-साथ /apps/staging/releases/20090310162127/log के सभी घटकों के लिए ट्रैवर्स अनुमतियां हैं?

+0

के रूप में हाँ, यह चल रहा है "मैं", पता नहीं क्या jail'ed का मतलब है, हालांकि। हां, सभी डीआईआर घटक ट्रैवर्सबल हैं। रिलीज/20090310162127 शायद एक लिंक (वर्तमान कहा जाता है) के माध्यम से पहुंचा जा सकता है। –

+2

@ मिचिल, जेल का मतलब है कि सुरक्षा कारणों से किसी विशेष निर्देशिका में रीमेप किया गया है। क्या आप पुष्टि कर सकते हैं कि यदि आप 'su - me' और 'touch /apps/staging/releases/20090310162127/log/staging.log' हैं तो आपको कोई त्रुटि नहीं मिलती है, है ना? – vladr

+0

दिलचस्प - मुझे उसमें देखना चाहिए। त्रुटि संदेश पूरी तरह से भ्रामक था हालांकि - लॉग फ़ाइल के साथ कुछ भी नहीं करना है। –

संबंधित मुद्दे