2010-12-17 17 views
5

में किसी पृष्ठ पर चलने वाले सभी प्रश्नों की सूची कैसे प्राप्त की जा सकती है, मैं अपने आवेदन.cfc पर कुछ कोड जोड़ना चाहता हूं, अनुरोध करें कि, यदि कोई निश्चित अनुप्रयोग चर ध्वज चालू है, तो क्वेरी लॉग इन करेगा SQL और डेटाबेस तालिका में निष्पादन समय। वह हिस्सा अपेक्षाकृत आसान है, क्योंकि कोल्डफ्यूजन क्वेरी स्ट्रक्चर के हिस्से के रूप में एसक्यूएल और निष्पादन समय देता है।कोल्डफ्यूजन 9

हालांकि, इस साइट पर शायद 1000 पृष्ठों के करीब है, और उनमें से सभी को संशोधित करना यथार्थवादी नहीं है। तो मैं onRequestEnd फ़ंक्शन में पूरी तरह से प्रोग्रामेटिक रूप से ऐसा करना चाहता हूं। ऐसा करने के लिए मुझे किसी भी तरह से पृष्ठ पर निष्पादित सभी प्रश्नों की एक सूची प्राप्त करने की आवश्यकता है और जहां मैं स्टंप हूं।

मैं वर्तमान पृष्ठ पर निष्पादित सभी प्रश्नों के नामों की सूची कैसे प्राप्त कर सकता हूं? ये प्रश्न टेम्पलेट के चर के दायरे में दिखाई देते हैं, लेकिन वहां भी कई चर के असंख्य हैं और मुझे यकीन नहीं है कि इसके माध्यम से आसानी से लूप कैसे करें और यह निर्धारित करें कि कौन सी क्वेरी है।

किसी भी मदद की सराहना की जाएगी।

उत्तर

5

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

किसी अन्य बात पर विचार करना एक सीएफसी या कस्टम टैग में आपके प्रश्नों को समाहित करना है और लॉगिंग के साथ यह सौदा है (लेकिन मुझे संदेह है कि आपके प्रश्न पूरे साइट पर फैले हुए हैं ताकि यह संशोधित करने के लिए बहुत सारे पेज हो सकते हैं - हालांकि जो डेटा एक्सेस को एन्सेप्लेट करने का कारण है, यह एक अच्छा विचार है: इस तरह की स्थिति के लिए बनाए रखना और बढ़ाना आसान है)।

डिबग टेम्पलेट्स (थोड़ा आधुनिकीकरण) से प्रासंगिक कोड, है:

<cfset tempFactory = createObject("java", "coldfusion.server.ServiceFactory") /> 
<cfset tempCfdebugger = tempFactory.getDebuggingService() /> 
<cfset qEvents = tempCfdebugger.getDebugger().getData() /> 

<cfquery dbType="query" name="qdeb"> 
    SELECT *, (endTime - startTime) AS executionTime 
    FROM qEvents WHERE type = 'SqlQuery' 
</cfquery> 
+0

प्रतिक्रिया के लिए धन्यवाद। मुझे पता नहीं था कि डिबगिंग टेम्पलेट्स वेवनीय थे। क्या आप मुझे बता सकते हैं कि उन्हें कहां मिलना है? Encapsulation के लिए ऑब्जेक्ट सबक के रूप में – Nicholas

+0

+1। –

+0

मैंने डिबग टेम्पलेट्स को देखने का प्रबंधन किया और वहां जवाब मिला। दुर्भाग्य से, अधिकांश पेशेवर नौकरियों की तरह, यह मेरे लिए काम करने के लिए एक तैयार वेबसाइट के साथ आया था। तो मुझे जो मिला वह मुझे काम करना पड़ा। इसी तरह की समस्या वाले लोगों के लिए, मैं अगली टिप्पणी में समाधान शामिल कर रहा हूं। – Nicholas

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