2013-02-15 7 views
10

I App haben, die seine Spur Quelle konfiguriert wie folgt:ändern Trace-Switch-Ebene über 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; 

Die App immer verwendet diese Spur Quellereignisse zu verfolgen. Bitte beachten Sie, dass SourceLevels.Information im Trace-Switch fest codiert ist. Jetzt muss ich die Trace-Switch-Ebene zu Verbose ändern. Ist es möglich, über app.config-Datei zu erreichen? Ich habe viele xml-configs ausprobiert aber gescheitert. Hinweis Ich kann den Quellcode nicht nur app.config ändern.

Antwort

6

Ich bin mir nicht sicher, ob Sie für so etwas suchen, aber ich habe einmal die folgende XML-Konfiguration verwendet: change the trace switch level to Verbose. (App-Config)

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

Vielleicht hilft es

3

Nun - Configuring Tracing klar spezifiziert:

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

Trace-Level Abschnitt einige Details beschrieben.

2

Beide Antworten oben haben einen Wert. Hier ist die vollständige Antwort. Fügen Sie diesen Abschnitt, um Ihre 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

Sie haben vergessen, den Schalter Wert in der Anwendung zu erwähnen, durch die 'switchValue =„Information“' Attribut gesteuert wird, spezifiziert den Standardwert überschreiben in den Anwendungscode. Setze es auf "Verbose" anstelle von "Information", um das zu tun, was das ursprüngliche Poster verlangte. – Suncat2000