2010-11-01 61 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

我不认为它会有所作为,因为它需要在任何诊断发生之前构建侦听器。