WCF跟踪和消息记录 - 跟踪级别警告

khl*_*hlr 5 wcf logging trace message

假设我有一个如下所示的配置文件:...

<system.diagnostics>
  <sources>
    <source name="System.ServiceModel" switchValue="Warning,ActivityTracing" propagateActivity="true">
      <listeners>
        <add name="ServiceModelTraceListener" />
      </listeners>
    </source>
    <source name="System.ServiceModel.MessageLogging">
      <listeners>
        <add name="ServiceModelTraceListener" />
      </listeners>
    </source>
  </sources>
  <sharedListeners>
    <add initializeData="LogServer.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="ServiceModelTraceListener" />
  </sharedListeners>
  <trace autoflush="true" />
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

当使用此配置文件时,调用者对服务执行的每个活动以及发送到服务的每个相应消息都将记录在svclog文件中.到目前为止一切都很好.

如果我将上面列表中的第3行修改为<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">(ActivityTracing已删除),则仅记录那些至少标记为级别警告的活动.但它仍然记录了每条消息......

那么有没有办法只记录与那些至少是警告的活动相对应的那些消息?那些成功的消息在那一刻并不是很有趣,但那些属于不成功活动的消息是!

Dre*_*rsh 0

还有一个switchValue可用于System.ServiceModel.MessageLogging跟踪开关。只需将该属性添加到该source元素并将其设置为Warning“也”,您将只看到记录的与警告相关的消息。