त्रुटियों पर स्टैक ट्रेस कैसे उत्पन्न करें


20

मैं एक ड्रुपल साइट को डीबग करने की कोशिश कर रहा हूँ। अपने सर्वर लॉग में मैं Drupal को फिर से और हमारे Solr उदाहरण के लिए फिर से वही अनुरोध करते हुए देख सकता हूं जब तक कि PHP अंततः मेमोरी से बाहर नहीं निकलता है, और Apache एक 500 त्रुटि देता है।

मैं डिस्क पर स्टैक ट्रेस लॉग करने के लिए ड्रुपल को कैसे कॉन्फ़िगर कर सकता हूं?

जवाबों:


15

आप देवल मॉड्यूल का उपयोग कर सकते हैं , और "क्रुमो बैकट्रेस" विकल्पों में से एक का चयन कर सकते हैं जो कि इसके कॉन्फ़िगरेशन पेज में एडमिन / कॉन्फिगरेशन / डेवलपमेंट / डेवेल पर उपलब्ध है।

क्रुमो बैकट्रेस

व्यवस्थापक / कॉन्फ़िगरेशन / विकास / लॉगिंग पर जाना सुनिश्चित करें और "त्रुटियां और चेतावनी" या "सभी संदेश" चुनें। यदि आपके पास Syslog मॉड्यूल, या कोई अन्य लॉगिंग मॉड्यूल सक्षम है, तो आपको इसे अक्षम करने और Dblog मॉड्यूल को सक्षम करने की आवश्यकता हो सकती है।

बैकट्रेस कॉन्फिग


6
मुझे लगता है कि यह विधि कुछ अपवादों के लिए क्रामो बैकट्रेस देने में विफल रहती है, जैसे किसी EntityMetadataWrapperवस्तु पर गैर-मौजूद संपत्ति का उपयोग करना।
Artfulrobot

3
EntityMetadataWrapper त्रुटियों के लिए रिपोर्ट की गई त्रुटि में लाइन पर जाएं और ddebug_backtrace();उस लाइन से ठीक पहले डालें । निश्चित रूप से उस को दूर करने के लिए मत भूलना!
डंकनमो ऑक्ट

क्या ये संदेश कहीं लॉग किए गए हैं या क्या उन्हें लॉग में लाना संभव है? यह अन्यथा उत्पादन पर बेकार है।
हेजल

1

कोर मॉड्यूल के तहत मॉड्यूल अनुभाग में आपके ड्रूपल सिस्टम में डिस्क पर लॉग को स्टोर करने के लिए उनका syslog मॉड्यूल है। आशा है कि यह आपकी तलाश में मदद करेगा।


1
यह दुर्भाग्यपूर्ण त्रुटियों (जैसे मेमोरी त्रुटियों से बाहर) पर काम नहीं करता है, दुर्भाग्य से।
स्टेफगोसेलिन

0

Drupal 7 और 8 के लिए, मॉड्यूल निरीक्षण बैकट्रैक के लिए बहुत अच्छा है।

यह उन्हें दिखाने के बजाय फ़ाइलों या लॉग इन Drupal डेटाबेस में जोड़ सकता है, जो उन मामलों में उपयोगी है, जहां क्रूमो बैकट्रेस, ddebug_backtrace()और अन्य समाधान जो प्रत्यक्ष ऑन-स्क्रीन आउटपुट बनाते हैं, विफल हो जाते हैं। रेंडरिंग आउटपुट शुरू होने से पहले होने वाली त्रुटियों और अपवादों के लिए यह मामला है।

निरीक्षण के लिए व्यवस्थापक बैकएंड क्षेत्र को कोड में इसके उपयोग के लिए एक अच्छा त्वरित संदर्भ शामिल है।


2
मैंने inspectडॉक्स में चारों ओर पोज़ दिया, लेकिन मुझे त्रुटि पर स्टैक ट्रेस उत्पन्न करने के लिए इसका उपयोग करने का तरीका नहीं दिखाई दिया। क्या यह कुछ ऐसा कर सकता है?
केन विलियम्स

0

ट्रेस मॉड्यूल मेरी स्थिति के लिए काफी बेहतर काम किया।

यह एक sysadmin & Developer टूल है जो Drupal हुक चालान, डेटाबेस क्वेरी और PHP त्रुटियों के लिए व्यापक अनुरेखण सुविधाओं को जोड़ता है।

संस्करण 1.0 द्वारा प्रदान की गई कुछ विशेषताएं इस मॉड्यूल:

  • आउटपुट संदेश को फ़ाइल या सिसलॉग (यूनिक्स प्लेटफार्मों पर) में ट्रेस करता है।
  • एक वैकल्पिक फिल्टर और स्टैक ट्रेस के साथ Drupal हुक चालान।
  • एक वैकल्पिक पूर्ण स्टैक ट्रेस के साथ PHP चेतावनियों और त्रुटियों का पता लगाता है।
  • क्वेरी प्रकार द्वारा वैकल्पिक फ़िल्टरिंग के साथ SQL डेटाबेस क्वेरी को ट्रेस करता है।
  • ट्रेस आउटपुट में माइक्रोसेकंड-स्तरीय समय की जानकारी शामिल है।
  • स्टैक के निशान में PHP सिंटैक्स में फ़ंक्शन के पारित तर्क शामिल हैं।
  • वैकल्पिक डिबग आउटपुट में PHP सुपरग्लोबल्स और HTTP हेडर शामिल हैं।
  • एक हुक परिभाषित करता है जिससे अन्य मॉड्यूल ट्रेस आउटपुट लक्ष्यों को बढ़ा सकते हैं।

1
अब यह मॉड्यूल विकास में नहीं है और प्रतीत होता है कि कोई D7 संस्करण उपलब्ध नहीं है ...:
tanius
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.