2013-02-15 24 views
10

के माध्यम से मैं अनुप्रयोग है कि इसके स्रोत का पता लगाने कॉन्फ़िगर करता है इस प्रकार है:बदलें ट्रेस स्विच स्तर app.config

 var traceSource = new TraceSource("MyTraceSource"); 
     traceSource.Switch = new SourceSwitch("MyTraceSwitch") { **Level = SourceLevels.Information** }; 

     var traceListener = new TextWriterTraceListener(logFilePath); 
     traceListener.TraceOutputOptions = TraceOptions.DateTime; 

     traceSource.Listeners.Clear(); 
     traceSource.Listeners.Add(traceListener); 

     Trace.AutoFlush = true; 

एप्लिकेशन को हमेशा इस स्रोत का पता लगाने की घटनाओं का पता लगाने में उपयोग करता है। कृपया ध्यान दें कि SourceLevels.Information ट्रेस स्विच में हार्डकोड किया गया है। अब मुझे ट्रेस स्विच स्तर को वर्बोज़ में बदलने की जरूरत है। क्या app.config फ़ाइल के माध्यम से इसे पूरा करना संभव है? मैंने कई एक्सएमएल-कॉन्फ़िगर की कोशिश की लेकिन असफल रहा। नोट मैं केवल स्रोत कोड को app.config नहीं बदल सकता।

उत्तर

6

मुझे यकीन है कि अगर आप कुछ इस तरह की तलाश कर रहे नहीं हूँ, लेकिन मैं करने के लिए एक बार निम्नलिखित एक्सएमएल विन्यास का उपयोग किया है: change the trace switch level to Verbose. (एप्लिकेशन-कॉन्फ़िग)

<configuration> 
     <system.diagnostics> 
      <switches> 
      <add name="AppTraceLevel" value="4" /> //4 = Verbose 
      </switches> 
      // Here would be the Trace Tag with the Listeners (not important for your question) 
     </system.diagnostics> 
    </configuration> 

शायद यह

3

में मदद करता है खैर - Configuring Tracing स्पष्ट रूप से निर्दिष्ट करता है:

<sources> 
     <source name="System.ServiceModel" 
       switchValue="Information, ActivityTracing" 
       propagateActivity="true"> 
     </source> 
    </sources> 

ट्रेस स्तर अनुभाग में कुछ विवरण वर्णन करता है।

2

ऊपर दोनों उत्तरों के मूल्य हैं। यहां पूरी प्रतिक्रिया दी गई है। अपने config करने के लिए इस खंड में जोड़ें:

<system.diagnostics> 
<sources> 
    <source name="MyTraceSource" switchValue="Information"> 
    <listeners> 
     <add name="file" initializeData="c:\temp\logpath.txt" traceOutputOptions="DateTime" type="System.Diagnostics.TextWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

    </listeners> 
    </source> 
</sources> 
</system.diagnostics> 
+0

आप आवेदन में स्विच मान 'switchValue =" सूचना "' विशेषता द्वारा नियंत्रित किया जाता, आवेदन कोड में निर्दिष्ट डिफ़ॉल्ट मान अधिभावी उल्लेख करना भूल गया। मूल पोस्टर से क्या करने के लिए 'सूचना' के बजाय इसे 'Verbose' पर सेट करें। – Suncat2000

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

  • कोई संबंधित समस्या नहीं^_^