2013-02-15 21 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はトレーススイッチにハードコードされています。 これで、トレーススイッチのレベルをVerboseに変更する必要があります。 app.configファイルを介して達成することは可能ですか?私は多くのxml-configsを試しましたが失敗しました。注ソースコードはapp.configのみ変更できません。

答えて

6

私はあなたがこのような何かを探しているかどうかわからないんだけど、私は次のXML構成一度使用しました: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> 

多分それは

3

を支援まあ - Configuring Tracingを明確に指定しています

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

トレースレベルセクションでは、いくつかの詳細を説明します。

2

上記の両方の回答に価値があります。ここに完全な応答があります。このセクションを設定に追加してください:

<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 = "情報"属性によって制御されています。元のポスターが尋ねたことをするには、 'Information'の代わりに' Verbose'に設定してください。 – Suncat2000

関連する問題