2010-11-01 37 views
0

我有一個公開的WCF服務(.net 3.5)。WCF診斷「logEntireMessage」保留在已部署的環境中

我正在使用診斷程序在需要時記錄消息和活動。這裏是我的代碼:

下面定義的消息記錄哪些:

<system.serviceModel> 
    <diagnostics> 
     <messageLogging 
     logEntireMessage="true" 
     logMalformedMessages="true" 
     logMessagesAtServiceLevel="true" 
     logMessagesAtTransportLevel="true" 
     maxMessagesToLog="3000000" 
     maxSizeOfMessageToLog="20000000"/> 
    </diagnostics> 
</system.serviceModel> 

以下指定在何處登錄到:

<system.diagnostics> 
    <trace autoflush="true" indentsize="4" /> 
    <sources> 
     <!-- Source for tracing WCF activities. --> 
     <source name="System.ServiceModel" switchValue="Information, ActivityTracing"> 
     <listeners> 
      <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" 
      initializeData="ActivityLog.svclog" /> 
     </listeners> 
     </source> 


     <!-- Source for tracing WCF messages (content). --> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="messageListner" type="System.Diagnostics.XmlWriterTraceListener" 
      initializeData="MessageLog.svclog" /> 
     </listeners> 
     </source> 

    </sources> 
</system.diagnostics> 

當我發表意見的來源時,它不記錄(顯然)。

我的問題是我可以將診斷元素留在那裏,還是應該註釋掉它(會影響性能/部署時的任何事情)?

回答

0

我不認爲它會有所作爲,因爲它需要在任何診斷髮生之前構建偵聽器。