TraceSwitch Class
TOC
Collapse the table of content
Expand the table of content

TraceSwitch Class

 

Provides a multilevel switch to control tracing and debug output without recompiling your code.

Namespace:   System.Diagnostics
Assembly:  System (in System.dll)

System.Object
  System.Diagnostics.Switch
    System.Diagnostics.TraceSwitch

type TraceSwitch = 
    class
        inherit Switch
    end

NameDescription
System_CAPS_pubmethodTraceSwitch(String, String)

Initializes a new instance of the TraceSwitch class, using the specified display name and description.

System_CAPS_pubmethodTraceSwitch(String, String, String)

Initializes a new instance of the TraceSwitch class, using the specified display name, description, and default value for the switch.

NameDescription
System_CAPS_pubpropertyAttributes

Gets the custom switch attributes defined in the application configuration file.(Inherited from Switch.)

System_CAPS_pubpropertyDescription

Gets a description of the switch.(Inherited from Switch.)

System_CAPS_pubpropertyDisplayName

Gets a name used to identify the switch.(Inherited from Switch.)

System_CAPS_pubpropertyLevel

Gets or sets the trace level that determines the messages the switch allows.

System_CAPS_protpropertySwitchSetting

Gets or sets the current setting for this switch.(Inherited from Switch.)

System_CAPS_pubpropertyTraceError

Gets a value indicating whether the switch allows error-handling messages.

System_CAPS_pubpropertyTraceInfo

Gets a value indicating whether the switch allows informational messages.

System_CAPS_pubpropertyTraceVerbose

Gets a value indicating whether the switch allows all messages.

System_CAPS_pubpropertyTraceWarning

Gets a value indicating whether the switch allows warning messages.

System_CAPS_protpropertyValue

Gets or sets the value of the switch.(Inherited from Switch.)

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_protmethodGetSupportedAttributes()

Gets the custom attributes supported by the switch.(Inherited from Switch.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_protmethodOnSwitchSettingChanged()

Updates and corrects the level for this switch.(Overrides Switch.OnSwitchSettingChanged().)

System_CAPS_protmethodOnValueChanged()

Sets the SwitchSetting property to the integer equivalent of the Value property.(Overrides Switch.OnValueChanged().)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

You can use a trace switch to filter out messages based on their importance. The TraceSwitch class provides the TraceError, TraceWarning, TraceInfo, and TraceVerbose properties to test the level of the switch. The Level property gets or sets the switch's TraceLevel.

You can set the level of a TraceSwitch through the application configuration file and then use the configured TraceSwitch level in your application. Alternately, you can create a TraceSwitch in your code and set the level directly to instrument a specific section of code.

To configure a TraceSwitch, edit the for your application. In this file, you can add or remove a switch, set a switch's value, or clear all the switches previously set by the application. The configuration file should be formatted like the following example:

<configuration>
  <system.diagnostics>
    <switches>
      <add name="mySwitch" value="1" />
    </switches>
  </system.diagnostics>
</configuration>

This configuration section defines a TraceSwitch with the DisplayName set to mySwitch, and the Level set to 1, which corresponds to the enumeration value TraceLevel.Error.

System_CAPS_noteNote

In the .NET Framework version 2.0, you can use text to specify the value for a switch. For example, true for a BooleanSwitch or the text representing an enumeration value, such as Error for a TraceSwitch. The line <add name="mySwitch" value="Error" /> is equivalent to <add name="mySwitch" value="1" />.

In your application, you can use the configured switch level by creating a TraceSwitch with the same name, as shown in the following example:

No code example is currently available or this language may not be supported.

By default, the switch Level property is set using the value specified in the configuration file. If the TraceSwitch constructor cannot find initial switch settings in the configuration file, the Level of the new switch defaults to TraceLevel.Off.

You must enable tracing or debugging to use a switch. The following syntax is compiler specific. If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • To enable debugging in C#, add the /d:DEBUG flag to the compiler command line when you compile your code, or add #define DEBUG to the top of your file. In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • To enable tracing in C#, add the /d:TRACE flag to the compiler command line when you compile your code, or add #define TRACE to the top of your file. In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

System_CAPS_noteNote

These debug and trace compiler switches are not required when using the TraceSwitch class in isolation. They are only required in conjunction with Trace or Debug methods that are conditionally compiled.

For more information on instrumenting your application, see Debug and Trace. For more information about configuring and using trace switches, see Trace Switches.

System_CAPS_noteNote

To improve performance, you can make TraceSwitch members static in your class.

The following code example creates a new TraceSwitch and uses the switch to determine whether to print error messages. The switch is created at the class level. MyMethod writes the first error message if the Level property is set to TraceLevel.Error or higher. However, MyMethod does not write the second error message if the Level is less than TraceLevel.Verbose.

No code example is currently available or this language may not be supported.

.NET Framework
Available since 1.1

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show:
© 2016 Microsoft