2017-07-06 3 views
0

プロダクション環境のWCFサーバーでトレースを設定しようとしているので、「問題」のみが記録されます。情報ではありません。私はMicrosoftのドキュメント、hereを見ましたが、それは私のためには機能しません。WCFトレースを設定するには、警告、エラー、および胎児のみを長くしますか?

あり推奨配備の設定や、私が試したこと

のデバッグであり、それが動作するように見えます。私はすべてのメッセージを記録している(私は思う)。

ここで、また、本番環境ため推奨設定があります:

<configuration> 
<system.diagnostics> 
    <sources> 
    <source name="System.ServiceModel" 
      switchValue="Warning" 
      propagateActivity="true" > 
     <listeners> 
     <add name="xml"/> 
     </listeners> 
    </source> 
    <source name="myUserTraceSource" 
      switchValue="Warning, ActivityTracing"> 
     <listeners> 
     <add name="xml"/> 
     </listeners> 
    </source> 
    </sources> 
    <sharedListeners> 
    <add name="xml" 
     type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="C:\logs\Traces.svclog" /> 
    </sharedListeners> 
</system.diagnostics> 

<system.serviceModel> 
    <diagnostics wmiProviderEnabled="true"> 
    </diagnostics> 
</system.serviceModel> 
</configuration> 

は、私は私の設定ファイルにそれを貼り付け..私は思うタイプミスがあります。彼らは書きました:

switchValue="Warning"を(ログが作成されていないことで)

をだから私はそれを変更:今、私は、ログを取得していますが、..私はと同じ結果を得ているswitchValue="Warning, ActivityTracing" デバッグバージョン。 なぜですか?

私がしようとしていた:

1)

<diagnostics> 
    <messageLogging 
     logEntireMessage="false" 
     logMalformedMessages="false" 
     logMessagesAtServiceLevel="false" 
     logMessagesAtTransportLevel="false" 
     maxMessagesToLog="5" /> 
</diagnostics> 

2)

<sources> 
    <source name="System.ServiceModel" 
      switchValue="Off, ActivityTracing" 
      propagateActivity="true" > 
     <listeners> 
     <add name="xml"/> 
     </listeners> 
    </source> 
    <source name="myUserTraceSource" 
      switchValue="Off, ActivityTracing"> 
     <listeners> 
     <add name="xml"/> 
     </listeners> 
    </source> 
    </sources> 
    </sources> 

3)

<system.diagnostics> 
    <sources> 
    <source name="System.ServiceModel" 
      switchValue="Off, ActivityTracing" 
      propagateActivity="true" > 
     <listeners> 
     <add name="TraceLog"/> 
     </listeners> 
    </source> 
    <source name="System.ServiceModel.MessageLogging" 
      switchValue="Off, ActivityTracing" 
      propagateActivity="true"> 
     <listeners> 
     <add name="xml"/> 
     </listeners> 
    </source>  
    <source name="myUserTraceSource" 
      switchValue="Off, ActivityTracing"> 
     <listeners> 
     <add name="TraceLog"/> 
     </listeners> 
    </source> 
    </sources> 
    <sharedListeners> 
    <add name="TraceLog" 
      type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="C:\logs\Traces.svclog" /> 
    </sharedListeners> 
    </system.diagnostics> 

は動作しませんでした://

答えて

1

WCFトレースはSystem.Diagnosticsの上に構築され、すべてのWCFアセンブリは異なるトレースメッセージを出力します。 System.ServiceModelは、最も一般的なWCFトレースソースであり、ほとんどのWCFアクティビティでトレースを発行します。発行される情報のレベルは、configファイルのswitchValue属性によって制御されます。

ActivityTracingトレースレベルがswitchValueに追加されているため、開始/停止/転送トレースメッセージも表示されます。あなたが警告だけを残すならば、うまくいくはずです。

サービスのホストが実行されているときに(たとえば、IISExpressでホストされている場合など)、svclogファイルが空に見えることがあります。サイトを停止すると、警告&の場合にのみ生成されたメッセージが表示されます。

例えば、以下の診断設定は、MSからの唯一の例外ArgumentNullException

<system.diagnostics> 
    <sources> 
     <source propagateActivity="false" name="System.ServiceModel" 
     switchValue="Warning"> 
     <listeners> 
      <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
      <filter type="" /> 
      </add> 
      <add name="ServiceModelTraceListener"> 
      <filter type="" /> 
      </add> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add initializeData="traces.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
     name="ServiceModelTraceListener" traceOutputOptions="None"> 
     <filter type="" /> 
     </add> 
    </sharedListeners> 
    </system.diagnostics> 

enter image description here

Configuring Tracing DOCは、トレースソースと共に使用することができる異なるトレースレベルを示し捕捉。

関連する問題