6.2. Providing Fine-Grained Control Over Debugging/Tracing Output
Problem
Your application
consists of multiple components. You need, at specific times, to turn
on debug/trace output for a select few components, while leaving all
other debug/trace output turned off. In addition, you need control
over the type and amount of information that is produced by the
Trace
/Debug
statements.
Solution
Use the BooleanSwitch
class with an application configuration file
(*.config
). The following method creates three
switches for our application: one that controls tracing for database
calls, one that controls tracing for UI components, and one that
controls tracing for any exceptions that are thrown by the
application:
public class Traceable { BooleanSwitch DBSwitch = null; BooleanSwitch UISwitch = null; BooleanSwitch exceptionSwitch = null; public void EnableTracing( ) { DBSwitch = new BooleanSwitch("DatabaseSwitch", "Switch for database tracing"); Console.WriteLine("DBSwitch Enabled = " + DBSwitch.Enabled); UISwitch = new BooleanSwitch("UISwitch", "Switch for user interface tracing"); Console.WriteLine("UISwitch Enabled = " + UISwitch.Enabled); exceptionSwitch = new BooleanSwitch("ExceptionSwitch", "Switch for tracing thrown exceptions"); Console.WriteLine("ExceptionSwitch Enabled = " + exceptionSwitch.Enabled); } }
After creating each switch, the Enabled
property
is displayed, indicating whether the switch is on or off.
Creating these switches without an application configuration file results ...
Get C# Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.