मेरे ऐप.कॉन्फिग में मैं 3 ट्रेसिंग स्तर (स्विच?) सेट करना चाहता हूं: वर्बोज़, चेतावनी और कोई नहीं। कोड के डीबग संस्करण में, मैं वर्बोज़ स्विच सक्रिय होना चाहता हूं, रिलीज में मुझे चेतावनी चाहिए। विशेष मामलों में मेरे एप्लिकेशन उपयोगकर्ता सभी निशान अक्षम करने के लिए कॉन्फ़िगरेशन फ़ाइल को संशोधित कर सकते हैं।समझ नहीं सकता .net 2010 ट्रेसिंग और app.config
मैं कंसोल पर आउटपुट करने के लिए डीबग निशान चाहता हूं, जबकि रिलीज केवल लॉग फ़ाइल में ट्रेस करता है।
मैं, लिखा ve निम्नलिखित:
[...]
<system.diagnostics>
<sources>
<!-- This section defines the logging configuration for My.Application.Log -->
<source name="debug" switchName="debug">
<listeners>
<add name="FileLog"/>
<add name="console"/>
</listeners>
</source>
<source name="release" switchName="release">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
<source name="silent" switchName="none">
<listeners/>
</source>
</sources>
<switches>
<add name="debug" value="Verbose"/>
<add name="release" value="Warning"/>
<add name="none" value="Off"/>
</switches>
<!--<sharedListeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
</sharedListeners>-->
<trace autoflush="false" indentsize="4">
<listeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false"/>
<remove name="Default"/>
</listeners>
</trace>
</system.diagnostics>
[...]
तब कोड में मैं ट्रेस इस तरह कहते हैं:
Public Shared Sub HandleException(ByVal ex As Exception)
Trace.WriteLine(ex.Message, "Error")
[...]
वहाँ कुछ मैं याद कर रहा हूँ है मुझे लगता है। मैं ट्रेस विधि को सही स्विच का उपयोग करने के लिए कैसे कहूं ?? मेरे एप्लिकेशन उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल को कैसे ट्रेसिंग या अक्षम करने की अनुमति देने के लिए बदल सकते हैं?
धन्यवाद।
बहुत बहुत धन्यवाद, मैंने सब कुछ पढ़ा है, आपने मेरे लॉगिंग अंधेरे में एक प्रकाश डाला है :) मैं सुझाव दूंगा कि आप एक लेख/ब्लॉग पोस्ट/वेब पेज लिखें, जो भी इस जानकारी को ध्यान में रखे जो अन्यथा फैल जाएगा । यदि आप करते हैं, तो मुझे लिंक भेजें! एक बार फिर धन्यवाद। – vulkanino
मैंने अंत में इसे समझ लिया, लेकिन अभी भी TraceEvent विधि को पास करने के लिए आईडी का उपयोग नहीं मिल सकता है। यदि ट्रेस स्रोत मुझे कॉन्फ़िगर करने देता है कि कहां (श्रोताओं) और कितने (स्विच) लॉग इन करने के लिए कॉन्फ़िगर करते हैं, और फिर मैं प्रोग्राम प्रकार को ईवेंट प्रकार (TraceEventType) निर्दिष्ट करता हूं, तो आईडी को निर्दिष्ट करने का क्या उपयोग होता है? – vulkanino
इवेंट आईडी के बारे में एक विचार के लिए, इस प्रश्न का पहला उत्तर देखें: http://stackoverflow.com/questions/576185/logging-best-practices "अन्य अनुशंसाओं" के अंतर्गत देखें। उस सुझाव के बाद, आप प्रत्येक लॉग संदेश को वर्गीकृत कर सकते हैं (ट्रेससोर्स, ट्रेसेवेन्ट टाइप या संदेश के बावजूद)। फिर कुछ प्रकार के संदेश के लिए आपके आउटपुट को क्वेरी/खोजना अपेक्षाकृत आसान होगा। उदाहरण के लिए, यदि ईवेंट आईडी 1001 का अर्थ है "फ़ाइल से पढ़ना" और 1002 का मतलब है "फ़ाइल में लिखना", तो आप अपने आउटपुट में सभी लॉग संदेश ढूंढ सकते हैं जो फ़ाइल से पढ़ने या लिखने के अनुरूप होते हैं। – wageoghe