2009-07-24 22 views
60

Özel bir izleme dinleyicisi uyguladı (TextWriteTraceListener'dan türetildi) ve şimdi uygulamanızı standart TextWriteTraceListener yerine kullanmak üzere ayarlamak istiyorum.App.config uygulamasında özel TraceListener nasıl tanımlanır

Öncelikle çalıştığından ve çalıştığından emin olmak için varsayılan olarak TextWriteTraceListener ekledim. İşte benim app.config var:

<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> 

Şimdi benim izleme dinleyicisi MyApp.Utils ad alanında tanımlanır ve FormattedTextWriterTraceListener denir. Bu yüzden MyApp.Utils.FormattedTextWriterTraceListener yukarıdaki config tipini değiştirdi ve şu anda benziyor:

<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> 

Ancak şimdi ben mesaj ile bir ConfigurationErrorsException alıyorum şey oturum açmaya çalıştığınızda:

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

Bu özel dinleyiciyi yapılandırmada nasıl kurabilirim ve mümkün olsa bile bilen var mı?

cevap

75

şöyle de bir derleme belirtmeyi deneyin:

<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

Derleme adı 'MyApp' ve ben tip argüman – RaYell

+1

I gönderiyi düzenledi olduğunu, yani –

+1

Bu farklı bir mesaj veriyor gibi belirtmek deneyin eklendi exception type) 'MyApp.Utils.FormattedTextWriterTraceListener, MyApp oluşturulamadı. – RaYell

3

Geçenlerde ve her ihtimale karşı bunun kimseye yardımcı bununla mücadele oldum ...

benim tip yüzden yazdım varlığından haberdar aşağıdaki: benim durumumda

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

, myClassType.AssemblyQualifiedName ben tip özelliğinde benim app.config dosyasında gerekli dize içeriyordu. Örneğin

: (aynı

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> 
İlgili konular