Export (0) Print
Expand All
2 out of 2 rated this helpful - Rate this topic

BooleanSwitch Class

Provides a simple on/off switch that controls debugging and tracing output.

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

public class BooleanSwitch : Switch
public class BooleanSwitch extends Switch
public class BooleanSwitch extends Switch

You can use a Boolean trace switch to enable or disable messages based on their importance. Use the Enabled property to get the current value of the switch.

You can enable or disable a BooleanSwitch through the application configuration file and then use the configured BooleanSwitch value in your application. Alternately, you can create a BooleanSwitch in your code and set the Enabled property directly to instrument a specific section of code.

To configure a BooleanSwitch, edit the configuration file that corresponds to the name of your application. Within 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 example configuration section defines a BooleanSwitch with the DisplayName property set to mySwitch and the Enabled value set to true. Within your application, you can use the configured switch value by creating a BooleanSwitch with the same name, as shown in the following code example.

private static BooleanSwitch boolSwitch = new BooleanSwitch("mySwitch", 
    "Switch in config file");

public static void Main(string[] args) 
{
    //...
    Console.WriteLine("Boolean switch {0} configured as {1}", 
        boolSwitch.DisplayName, boolSwitch.Enabled.ToString());
    if (boolSwitch.Enabled)
    {
        //...
    }
}

By default, the Enabled property is set using the value specified in the configuration file. Configure the switch with a value of 0 to set the Enabled property to false; configure the switch with a nonzero value to set the Enabled property to true. If the BooleanSwitch constructor cannot find initial switch settings in the configuration file, the Enabled property of the new switch is set to false by default.

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 you can 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.

NoteNote

These debug and trace compiler switches are not required when using the BooleanSwitch 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.

NoteNote

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

TopicLocation
How to: Configure Trace Switches.NET Framework: Debugging
How to: Create and Initialize Trace Switches.NET Framework: Debugging
How to: Configure Trace Switches.NET Framework: Debugging
How to: Create and Initialize Trace Switches.NET Framework: Debugging

The following example creates a BooleanSwitch and uses the switch to determine whether to print an error message. You create the switch at the class level. The Main method passes its location to MyMethod, which prints an error message and where the error occurred.

// Class level declaration.
/* Create a BooleanSwitch for data.*/
static BooleanSwitch dataSwitch = new BooleanSwitch("Data", "DataAccess module");

static public void MyMethod(string location) {
   //Insert code here to handle processing.
   if(dataSwitch.Enabled)
      Console.WriteLine("Error happened at " + location);
}

public static void Main(string[] args) {
   //Run the method which writes an error message specifying the location of the error.
   MyMethod("in Main");
}


// Class level declaration.
/* Create a BooleanSwitch for data.
 */
private static BooleanSwitch dataSwitch = 
    new BooleanSwitch("Data", "DataAccess module");

public static void MyMethod(String location)
{
    //Insert code here to handle processing.
    if (dataSwitch.get_Enabled()) {
        Console.WriteLine("Error happened at " + location);
    }
} //MyMethod

public static void main(String[] args)
{
    // Run the method which writes an error message specifying 
    // the location of the error.
    MyMethod("in main");
} //main

// Class level declaration.
 /* Create a BooleanSwitch for data.*/
 static var dataSwitch : BooleanSwitch = new BooleanSwitch("Data", "DataAccess module");
 
 static public function MyMethod(location : String) {
    // Insert code here to handle processing.
    if(dataSwitch.Enabled)
       Console.WriteLine("Error happened at " + location);
 }
 
 public static function Main() {
    // Run the method which writes an error message specifying the location of the error.
    MyMethod("in Main");
 }


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

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.