2009-10-16 15 views
6

मैं पहली बार एक बड़ी वेबसाइट लॉन्च करने वाला हूं। मैंने अपने php.ini में सभी त्रुटि संदेशों को बंद कर दिया है और त्रुटि संदेश अब मेरे सर्वर पर "error_log" फ़ाइल में लॉग इन हैं।लाइव वेबसाइट त्रुटि प्रबंधन के लिए सर्वोत्तम अभ्यास

मेरा प्रश्न यह है कि अब त्रुटियों को एक फ़ाइल में लॉग किया गया है, वेबसाइट डेवलपर्स पर त्रुटियों के दौरान देखने के शीर्ष पर कौन से सबसे अच्छे तरीके हैं?

फिलहाल, ऐसा लगता है कि हर रोज त्रुटि_लोग फ़ाइल को जांचना सबसे अच्छा तरीका होगा, हालांकि यह सबसे कुशल समाधान की तरह प्रतीत नहीं होता है। आदर्श रूप से मुझे हर बार एक त्रुटि होती है (त्रुटि संदेश के साथ)। त्रुटियों के शीर्ष पर कैसे रख सकते हैं इस पर कोई सलाह बहुत सराहना की जाएगी!

साझा सर्वर (HostMonster)
वेबसाइट पीएचपी

उत्तर

5

PHP में दो मुख्य कार्य हैं जो त्रुटियों और अपवादों को पकड़ने में सहायता करते हैं। मेरा सुझाव है कि आप उन पर एक नज़र डालें:

हमारी कंपनी में, हम सभी त्रुटियों कि उन कार्यों के साथ हमारी वेबसाइट पर होता है संभाल, हमारे अपने त्रुटियों और अपवादों को परिभाषित हैंडलिंग विधियों।

जब कोई त्रुटि होती है, तो डेवलपर टीम को एक ईमेल भेजा जाता है।

+0

धन्यवाद मैक्सीहाट। अगर मैं इस मार्ग पर जाना चाहता हूं, तो प्रत्येक PHP स्क्रिप्ट पर मुझे अपना कस्टम एरर हैंडलर शामिल करना होगा, है ना? – justinl

+0

हां, उस कस्टम हैंडलर को प्रत्येक स्क्रिप्ट में शामिल करने की आवश्यकता है। यदि आप परेशान नहीं करना चाहते हैं, तो आप इसे एक ऑटो प्रीपेन्ड फ़ाइल में उपयोग कर सकते हैं, यहां अधिक जानकारी: http://php.net/manual/en/ini.core.php – MaxiWheat

+0

या स्पेगेटी कोड से बचने के लिए लार्वेल जैसे ढांचे का उपयोग करें । –

0

में प्राधिकृत आप त्रुटियों पर अपने आप को ईमेल कर सकते हैं यदि पिछले एन घंटे में कोई ईमेल था पर चल रहा है अतिरिक्त जानकारी

2

जिस स्थान पर मैंने पहले काम किया था, वह त्रुटि लॉगिंग को संभालने के लिए एक कस्टम एक्सटेंशन का उपयोग करता था। यह मूल रूप से INSERT DELAY कुछ अतिरिक्त जानकारी के साथ एक डीबी में त्रुटियों। फिर, एक अलग व्यवस्थापक उपकरण आसानी से लॉग टेबल को खोजने, ब्राउज़ करने, क्रमबद्ध करने और मैन्युअल रूप से प्रोजेक्ट करने में सक्षम होने के लिए लिखा गया था।

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

यदि आप चाहते हैं, तो आप स्वयं को प्रति घंटा सारांश भी ईमेल कर सकते हैं, लेकिन मुझे सुझाव नहीं है कि आप इससे अधिक कुछ भेजें या आप खुद से नफरत करेंगे।

+0

यहां ध्यान देने योग्य एक बिंदु यह है कि set_error_handler() सभी त्रुटि प्रकारों (php.net से) को संभाल नहीं करता है: निम्न त्रुटि प्रकारों को उपयोगकर्ता परिभाषित फ़ंक्शन के साथ प्रबंधित नहीं किया जा सकता है: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, और अधिकांश E_STRICT फ़ाइल में उठाए गए हैं जहां set_error_handler() कहा जाता है। – AvatarKava

+0

टूटी हुई त्रुटि रिपोर्टिंग तंत्र के बारे में त्रुटि रिपोर्टिंग करना विरोधाभासी है, है ना? –

0

यदि आपको कई त्रुटियों की उम्मीद नहीं है, तो "निजी" आरएसएस/एटीओएम फ़ीड अच्छी तरह से काम कर सकती है ... जिससे आपको चिंता करने की आवश्यकता नहीं है यदि आपको कुछ भी नहीं मिलता है ... लेकिन अगर आप मिलना शुरू करते हैं "अद्यतन" आप जानते हैं कि समस्याएं हैं।

0

मुझे नहीं पता कि होस्टमस्टर लॉग रोटेशन को कैसे संभालता है, लेकिन आम तौर पर आप अपनी त्रुटि_लॉग फ़ाइल के आकार पर नजर रखना चाहते हैं। यदि आकार अचानक कूदता है, तो निश्चित रूप से आपको कुछ जांचने की आवश्यकता होती है ताकि आप एक ईमेल प्राप्त करना चाहते हों जो आपको बताए कि लॉगफाइल आकार अप्रत्याशित रूप से कूद गया है।

इसके अलावा, आप सप्ताह के अंत में त्रुटि लॉग को जोड़ सकते हैं और उन्हें स्वयं ईमेल कर सकते हैं और सप्ताहांत पर डीबग कर सकते हैं। यदि कोई त्रुटि सप्ताह में कुछ बार हो रही है तो शायद यह भी किसी समस्या का गंभीर नहीं है।

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