2009-07-24 18 views
60

मैं एक कस्टम ट्रेस श्रोता (TextWriteTraceListener से प्राप्त) लागू कर दिया है में कस्टम TraceListener परिभाषित करने के लिए और अब मैं अपने आवेदन मानक TextWriteTraceListener के बजाय इसका उपयोग करने के लिए सेट करना चाहते हैं।कैसे app.config

सबसे पहले मैं आदेश यकीन है कि यह ठीक काम करता है और यह करता है बनाने के लिए डिफ़ॉल्ट TextWriteTraceListener गयी। यहाँ मेरी app.config है:

<configuration> 
    <system.diagnostics> 
     <trace autoflush="true" indentsize="4"> 
      <listeners> 
       <add name="TextListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log" /> 
      <remove name="Default" /> 
      </listeners> 
     </trace> 
    </system.diagnostics> 
</configuration> 

अब मेरी ट्रेस श्रोता MyApp.Utils नाम स्थान में परिभाषित किया गया है और यह FormattedTextWriterTraceListener कहा जाता है। इसलिए मैं MyApp.Utils.FormattedTextWriterTraceListener के लिए ऊपर config में प्रकार बदल दिया और यह वर्तमान में इस तरह दिखता है:

<configuration> 
    <system.diagnostics> 
     <trace autoflush="true" indentsize="4"> 
      <listeners> 
       <add name="MyTextListener" type="MyApp.Utils.FormattedTextWriterTraceListener" initializeData="trace.log" /> 
      <remove name="Default" /> 
      </listeners> 
     </trace> 
    </system.diagnostics> 
</configuration> 

लेकिन अब जब मैं कुछ मैं संदेश के साथ एक ConfigurationErrorsException हो रही है प्रवेश करने का प्रयास:

Couldn't find type for class MyApp.Utils.FormattedTextWriterTraceListener.

क्या कोई जानता है कि मैं इस कस्टम श्रोता को कॉन्फ़िगरेशन में कैसे स्थापित कर सकता हूं और यदि यह भी संभव है?

उत्तर

75

इसलिए जैसे भी एक विधानसभा निर्दिष्ट करने का प्रयास,:

<configuration> 
    <system.diagnostics> 
     <trace autoflush="true" indentsize="4"> 
      <listeners> 
       <add name="TextListener" 
        type="MyApp.Utils.FormattedTextWriterTraceListener, MyApp" 
        initializeData="trace.log" /> 
      <remove name="Default" /> 
      </listeners> 
     </trace> 
    </system.diagnostics> 
</configuration> 
+0

विधानसभा नाम 'MyApp' (समान है और मैं यह भी कहा कि प्रकार तर्क – RaYell

+1

को मैं पोस्ट संपादित, कि –

+1

यह एक अलग संदेश दे रहा है की तरह निर्दिष्ट करने के लिए कोशिश अपवाद प्रकार) 'MyApp.Utils.FormattedTextWriterTraceListener, MyApp नहीं बना सका। – RaYell

3

मैं हाल ही में और सिर्फ मामले में यह किसी को भी मदद करता है इस के साथ संघर्ष कर रहा है ...

मैं अपने प्रकार तो मैं लिखा था अस्तित्व में पता था निम्नलिखित:

Assembly assembly = System.Reflection.Assembly.GetAssembly(typeof("yourclassname")); 
Type myClassType = assembly.GetType("yournamespace.yourclassname"); 

मेरे मामले में, myClassType.AssemblyQualifiedName स्ट्रिंग मैं प्रकार विशेषता में मेरी app.config फ़ाइल में आवश्यक होता है।

उदाहरण के लिए:

enter image description here

<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="true"> 
     <listeners> 
      <add name="CircularTraceListener" /> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add name="CircularTraceListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener, CircularTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" 
      initializeData="C:\MyWebService\APILog\CircularTracing-service.svclog" maxFileSizeKB="1000" /> 
    </sharedListeners> 
    <trace autoflush="true" /> 
    </system.diagnostics>