2012-08-08 11 views
11

मैं हेरोकू पर एक साधारण Django प्रोजेक्ट चला रहा हूं। यह काम करता है, लेकिन अगर मुझे सर्वर त्रुटि मिलती है तो यह मुझे लॉग में कोई विवरण नहीं देती है। यह त्रुटियों के साथ सौदा करने के लिए अविश्वसनीय रूप से मुश्किल बनाता है।डीजेगो परियोजनाओं के लिए हेरोोकू लॉग इन त्रुटियों की अनुपस्थिति

अब मैंने एक स्टेजिंग सर्वर स्थापित किया है और यह एक ही समस्या है - पेज असफल हो रहे हैं और मुझे कोई प्रतिक्रिया नहीं मिली है।

$ Heroku लॉग

...

2012-08-08T13:55:58+00:00 app[web.1]: Development server is running at http://0.0.0.0:59048/ 
2012-08-08T13:55:59+00:00 heroku[web.1]: State changed from starting to up 
2012-08-08T13:56:01+00:00 heroku[router]: GET [xxx].herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=22ms status=500 bytes=27 
2012-08-08T13:56:01+00:00 app[web.1]: [08/Aug/2012 14:56:01] "GET/HTTP/1.1" 500 27 
2012-08-08T13:56:02+00:00 heroku[router]: GET [xxx].herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=6ms status=500 bytes=27 
2012-08-08T13:56:09+00:00 heroku[router]: GET[xxx].herokuapp.com/admin dyno=web.1 queue=0 wait=0ms service=2ms status=301 bytes=0 
2012-08-08T13:56:09+00:00 app[web.1]: [08/Aug/2012 14:56:09] "GET /admin HTTP/1.1" 301 0 
2012-08-08T13:56:10+00:00 heroku[router]: GET [xxx].herokuapp.com/admin/ dyno=web.1 queue=0 wait=0ms service=224ms status=500 bytes=27 
2012-08-08T13:56:10+00:00 app[web.1]: [08/Aug/2012 14:56:10] "GET /admin/ HTTP/1.1" 500 27 
2012-08-08T13:56:10+00:00 heroku[router]: GET [xxx].herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=6ms status=500 bytes=27 

आप देख सकते हैं, पृष्ठों 500 के रूप में लौट रहे हैं, लेकिन मैं किसी भी स्टैक ट्रेस जानकारी या इसी तरह की नहीं हो रही है।

संभावित समस्याओं को इंगित किया जा सकता है: 'विकास सर्वर चल रहा है ...' - इसका क्या अर्थ है और क्या यह त्रुटि लॉगिंग को प्रभावित कर रहा है?

इसके अलावा, मैं कस्टम 500 त्रुटि पृष्ठ को परिभाषित करने के लिए '500.html' टेम्पलेट फ़ाइल का उपयोग कर रहा हूं। क्या यह किसी भी तरह से छिपाने वाली त्रुटियां हो सकती है? यह वास्तव में नहीं होना चाहिए।

या क्या मुझे हेरोकू पर Django के साथ लॉग के लिए किसी अन्य स्थान पर देखने की आवश्यकता है?

धन्यवाद!

उत्तर

9

ऐसा लगता है कि यह एक उम्मीद के कारण बस एक समस्या थी कि हेरोकू के तहत डीजेगो रेल की तरह काम करेगा। मुझे मूर्ख।

किसी और को इस समस्या से पीड़ित जब एक ढांचा/भाषा से आगे बढ़ के लिए:

  • जब डिबग बंद है, Django मानक अजगर लकड़हारा कोड में त्रुटियों को संभालने के लिए उपयोग करता है।
  • सेटिंग.py के नीचे एक डिफ़ॉल्ट सेट-अप है जो त्रुटियों के दौरान साइट व्यवस्थापक को ईमेल करता है। अच्छा लगा। इसे काम करने के लिए settings.py में ADMINS चर में ईमेल पते की एक सरणी की आवश्यकता है।
  • त्रुटियों को डिफ़ॉल्ट रूप से STDOUT के बजाय STDERR में भेजा जाता है, इसलिए वे लॉग में नहीं दिखाए जाएंगे। इसे स्पष्ट रूप से बदला जा सकता है। यदि आप इस व्यवहार चाहते हैं यहाँ का प्रयास करें:

    http://codeinthehole.com/writing/console-logging-to-stdout-in-django/

+1

हेरोकू के दस्तावेज़ बताते हैं कि वे दोनों stderr और stdout लॉग इन करेंगे ... मुझे आश्चर्य है कि अगर आप इसका उत्तर देते हैं तो यह अलग होता है और अब बदल गया है? https: //devcenter.heroku।com/articles/logging # लेखन-टू-अप-लॉग मुझे लगता है कि मैं इसका परीक्षण कर सकता हूं। –

+0

मेरी समस्या यह थी कि हेरोकू के साथ नहीं था, जिसकी मैंने अपेक्षा की थी। यह Django के साथ था, जो रेल के रूप में काम नहीं किया था। शायद स्पष्ट रूप से। –

0

यह व्यवहार सर्वर (उदा। गनिकोर्न) द्वारा सेट किया गया है, न कि Django या Heroku।

आमतौर पर एक कमांड लाइन या कॉन्फ़िगरेशन होता है जो डिफ़ॉल्ट लॉग स्तर को बदलता है।

+1

आह, तो डिफ़ॉल्ट हेरोोक सेटिंग्स स्टैक निशान नहीं दिखा रही हैं? धन्यवाद, यह मुझे कोशिश करने के लिए एक दिशा देता है। अगर फलदायी मैं अपना समाधान समझाऊंगा और स्वीकार करूंगा। –

+1

ठीक है, मैंने बंदूक का उपयोग करने और लॉगिंग स्तर को डीबग करने के लिए सेट करने का प्रयास किया है। कोई पाँसा नहीं। मुख्य प्रश्न अपडेट कर रहा है। –

+0

जैसा कि मैंने पाया, व्यवहार d.pyango द्वारा सेटिंग.py के नीचे लॉगिंग सेटिंग्स का उपयोग करके सेट किया गया है। यह पहली बार थोड़ा अपारदर्शी है, लेकिन मुझे लगता है कि यह एक मानक पायथन लॉगर सेट-अप है, इसलिए इंटरनेट पर बहुत मदद मिलेगी। –

-3

ऐसा करने पर आपके settings.py फ़ाइल में अपने डीबग बदलकर हल किया जा सकता। DEBUG = True

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