2009-09-08 10 views
23

के साथ एकाधिक अनुप्रयोगों के लिए एकल Elmah.axd का उपयोग करें हमारे पास एकाधिक अनुप्रयोगों से त्रुटियों को संग्रहीत करने के लिए एक एकल SQL लॉग है। हमने अपने प्रत्येक एप्लिकेशन के लिए elmah.axd पृष्ठ को अक्षम कर दिया है और एक नया एप्लिकेशन चाहते हैं जो विशेष रूप से उन सभी ऐप्स से त्रुटियों को प्रदर्शित करता है जो सामान्य SQL लॉग में त्रुटियों की रिपोर्ट करते हैं।एकल डीबी लॉग

अभी तक, हालांकि सभी त्रुटियों के लिए एप्लिकेशन सामान्य SQL लॉग का उपयोग कर रहा है, यह केवल वर्तमान एप्लिकेशन से त्रुटियों को प्रदर्शित करता है। क्या किसी ने इसे पहले किया है? Elmah कोड के भीतर क्या tweaked की आवश्यकता हो सकती है?

+1

स्पष्ट तरीके से इस तरह के एक अच्छा सवाल पूछने के लिए धन्यवाद, आपने मेरे शब्दों को टाइम मशीन के साथ लिया है। यह लगभग 6-7 साल बाद है। – AKS

उत्तर

30

मुझे लगता है कि "एसक्यूएल लॉग" का मतलब है कि आप एमएसएसएलएल सर्वर का मतलब है ... यदि ऐसा है, तो संभवतः आप जो चाहते हैं उसे पूरा करने का सबसे आसान तरीका SQL सर्वर डेटाबेस में बनाए गए संग्रहीत प्रक्रियाओं को संपादित करना होगा जो आपकी त्रुटियों को रखता है।

त्रुटि सूची प्राप्त करने के ELMAH dll कॉल एक पैरामीटर के रूप आवेदन नाम के साथ ELMAH_GetErrorsXML proc, तो proc एक WHERE [Application] = @Application खंड के साथ वापसी फिल्टर।

बस ELMAH_GetErrorsXML proc से WHERE क्लॉज को हटा दें, और आवेदन के बावजूद सभी त्रुटियों को वापस किया जाना चाहिए।

एक त्रुटि त्रुटि ठीक से प्राप्त करने के लिए, आपको ELMAH_GetErrorXML proc के साथ ऐसा करना होगा, क्योंकि यह एप्लिकेशन द्वारा फ़िल्टर भी किया जाता है।

यह निश्चित रूप से, इस विशेष डेटाबेस से त्रुटियों को पुनर्प्राप्त करने वाले किसी भी एप्लिकेशन को प्रभावित करेगा, लेकिन मुझे लगता है कि आपके मामले में आपके पास केवल एक ही होगा, इसलिए यह अच्छा होना चाहिए।

चेतावनी: मैं इस प्रयास नहीं किया है, तो मैं परिणाम की गारंटी नहीं कर सकते हैं ...

+0

सही! मैं स्पोक संशोधनों को देख लूंगा। – RSolberg

+1

@ ई.किंग, धन्यवाद आपका उत्तर एक आकर्षण की तरह काम करता है ... – AKS

2

हाँ, यह आसानी से काम करता है। हालांकि आप एल्मा/Default.aspx में ऐप का नाम नहीं देख सकते हैं। मुझे नहीं मिला है कि यह उलझन में है - बस एक कॉलम अधिक प्रदर्शित करें।

+1

यह सच है। उस पृष्ठ के लिए लेआउट को ErrorLogPage.cs कोड में परिभाषित किया गया है, इसलिए एक और कॉलम जोड़ने के लिए आपको स्रोत डाउनलोड करना होगा, परिवर्तन करना होगा, और पुन: संकलित करना होगा। http://code.google.com/p/elmah/source/browse/trunk/src/Elmah/ErrorLogPage.cs –

4

डिफ़ॉल्ट एल्माह हैंडलर फैक्ट्री को ओवरराइड करने में कोई समस्या नहीं है ताकि यह एप्लिकेशन द्वारा एल्मा लॉग फ़िल्टर कर सके। मैंने एक नमूना ऐप लिखा जो दिखाता है कि इसे MySQL के साथ कैसे करें: http://diagnettoolkit.codeplex.com/releases/view/103931। आप post on my blog की जांच भी कर सकते हैं जहां मैं समझाता हूं कि यह कैसे काम करता है।

+0

+1 - इस तरह यह किया जाना चाहिए। स्वच्छ और सरल और मूल डीडीएल स्क्रिप्ट या न ही एल्मा स्रोत कोड को संशोधित करने की आवश्यकता है। ब्लॉग पोस्ट यह सब बताता है। अच्छा काम किया साहब! –

+0

मैंने अभी इसे कार्यान्वित किया है। अच्छा काम करता है! –

+0

यह एक अच्छा विकल्प है। हालांकि, नकारात्मकता यह है कि आप एक समय में केवल एक ही एप्लिकेशन से त्रुटियां देख सकते हैं, और आपको एप्लिकेशन के नाम को सामने जाना होगा। यदि आप सभी अनुप्रयोगों में त्रुटियों की एक सूची देखना चाहते हैं (जिस तरह से मैंने प्रश्न का अर्थ बताया है), यह तब तक नहीं करेगा जब तक कि मैं उस टुकड़े को नहीं देख रहा हूं। –

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