Dynamically Enabling Analytic Tracing
Using tools that ship with the Windows operating system, you can enable or disable tracing dynamically using Event Tracing for Windows (ETW). For all .NET Framework version 4 Windows Communication Foundation (WCF) services, analytic tracing can be enabled and disabled dynamically without modifying the application’s Web.config file or restarting the service. This allows the application that emits the trace events to remain undisturbed.
WCF tracing options can be configured in a similar way. For example, you can change the severity level from Error to Information without disturbing the application. This can be done using the following tools:
Logman – A command line tool for configuring, controlling, and querying tracing data. For more information, see Logman Create Trace and Logman Update Trace.
EventViewer - Windows graphical management tool for viewing the results of tracing. For more information, see Event Viewer.
Perfmon – Windows graphical management tool that uses counters to monitor tracing counters and the effects of tracing on performance. For more information, see Create a Data Collector Set Manually.
Keywords
When using the Diagnostics class, .NET Framework trace messages are generally filtered by the severity level (for example, Error, Warning, and Information). ETW supports the severity level concept, but introduces a new, flexible filter mechanism using keywords. Keywords are arbitrary textual values that let tracing events provide additional context about what that event means.
For WCF analytic tracing, each trace event has two types of keywords. First, each event has one or more scenario keywords. These keywords denote the scenarios that this event is intended to support. There are three scenario keywords, each designed for a specific purpose as shown in the following table. Filtering using keywords can be changed dynamically without disturbing the WCF service. That means that you can dynamically change your current tracing scenario and the amount of tracing information you gather. For example, you can change HealthMonitoring to Troubleshooting and increase Tracing Event granularity.
Keyword | Description |
---|---|
HealthMonitoring |
Very lightweight, minimal tracing that lets you monitor your service’s activity. |
EndToEndMonitoring |
Events used to support message flow tracing. |
Troubleshooting |
More granular events around the extensibility points of WCF. |
The second group of keywords define which component of the .NET Framework emitted the event.
Keyword | Description |
---|---|
UserEvents |
Events emitted by the user code and not the .NET Framework. |
ServiceModel |
Events emitted by the WCF runtime. |
ServiceHost |
Events emitted by the service host. |
WCFMessageLogging |
WCF message logging events. |