跟踪和消息日志记录的推荐设置

本主题介绍针对不同操作环境的推荐跟踪和消息日志记录设置。

对于生产环境,如果使用 WCF 跟踪源,请 switchValue 设置为“警告”。 如果使用的是 WCF System.ServiceModel 跟踪源,请将 switchValue 属性设置为 Warning ,并将 propagateActivity 属性设置为 true。 如果使用用户定义的跟踪源,请将 switchValue 属性设置为 Warning, ActivityTracing。 可以使用 配置编辑器工具(SvcConfigEditor.exe)手动完成此作。 如果不预计性能下降,可以将属性设置为switchValueInformation在前面提到的所有情况下,这会生成相当大量的跟踪数据。 以下示例演示了这些建议的设置。

<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>

对于部署或调试环境,请为用户定义的或 Information 跟踪源选择 VerboseActivityTracing,以及 System.ServiceModel。 若要增强调试,还应将其他跟踪源 (System.ServiceModel.MessageLogging) 添加到配置以启用消息日志记录。 请注意,该 switchValue 属性不会影响此跟踪源。

下面的示例通过使用利用了 XmlWriterTraceListener 的共享侦听器来演示推荐的设置。

<configuration>
 <system.diagnostics>
  <sources>
    <source name="System.ServiceModel"
            switchValue="Information, ActivityTracing"
            propagateActivity="true" >
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
    <source name="System.ServiceModel.MessageLogging">
      <listeners>
        <add name="xml"/>
      </listeners>
    </source>
    <source name="myUserTraceSource"
            switchValue="Information, 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">
      <messageLogging
           logEntireMessage="true"
           logMalformedMessages="true"
           logMessagesAtServiceLevel="true"
           logMessagesAtTransportLevel="true"
           maxMessagesToLog="3000"
       />
  </diagnostics>
 </system.serviceModel>
</configuration>

使用 WMI 修改设置

可以使用 WMI 在运行时更改配置设置(通过在配置中启用 wmiProviderEnabled 属性,如前面的配置示例所示)。 例如,可以使用 CIM Studio 中的 WMI 在运行时将跟踪源级别从警告更改为信息。 应注意,以这种方式进行实时调试的性能成本可能很高。 有关使用 WMI 的详细信息,请参阅 “使用适用于诊断的 Windows Management Instrumentation ”主题。

在 ASP.NET 跟踪中启用相关事件

除非打开 ASP.NET 事件跟踪,否则 ASP.NET 事件不会设置相关 ID(ActivityID)。 若要正确查看相关事件,必须在命令控制台中使用以下命令打开 ASP.NET 事件跟踪,可以通过转到“开始”、“运行”和键入 cmd 来调用这些事件。

logman start mytrace -pf logman.providers -o test.etl -ets

若要关闭 ASP.NET 事件的跟踪,请使用以下命令:

logman stop mytrace -ets

另请参阅