Csharp/CSharp Tutorial/Development/TraceSwitch
TraceWriteLineIf
<source lang="csharp">using System; using System.Collections.Generic; using System.Diagnostics; using System.Text;
public class MainClass {
public static void Main() { TraceSwitch testTraceSwitch = new TraceSwitch("testTraceSwitch", "info"); Trace.WriteLineIf(testTraceSwitch.TraceError, "Something bad happened"); Trace.WriteLineIf(testTraceSwitch.TraceInfo, "Some informational trace"); }
}</source>
User-Defined Switch
<source lang="csharp">// copyright 2000 Eric Gunnerson using System; using System.Diagnostics; enum SpecialSwitchLevel {
Mute = 0, Terse = 1, Verbose = 2, Chatty = 3
} class SpecialSwitch: Switch {
public SpecialSwitch(string displayName, string description) : base(displayName, description) { } public SpecialSwitchLevel Level { get { return((SpecialSwitchLevel) base.SwitchSetting); } set { base.SwitchSetting = (int) value; } } public bool Mute { get { return(base.SwitchSetting == 0); } } public bool Terse { get { return(base.SwitchSetting >= (int) (SpecialSwitchLevel.Terse)); } } public bool Verbose { get { return(base.SwitchSetting >= (int) SpecialSwitchLevel.Verbose); } } public bool Chatty { get { return(base.SwitchSetting >=(int) SpecialSwitchLevel.Chatty); } } protected new int SwitchSetting { get { return((int) base.SwitchSetting); } set { if (value < 0) value = 0; if (value > 4) value = 4; base.SwitchSetting = value; } }
} class MyClass {
public MyClass(int i) { this.i = i; } [Conditional("DEBUG")] public void VerifyState() { Console.WriteLine("VerifyState"); Debug.WriteLineIf(debugOutput.Terse, "VerifyState Start"); Debug.WriteLineIf(debugOutput.Chatty, "Starting field verification"); if (debugOutput.Verbose) Debug.WriteLine("VerifyState End"); } static SpecialSwitch debugOutput = new SpecialSwitch("MyClassDebugOutput", "application"); int i = 0;
} class Test {
public static void Main() { //TraceSwitch ts = new TraceSwitch("MyClassDebugOutput", "application"); //Console.WriteLine("TraceSwitch: {0}", ts.Level); Debug.Listeners.Clear(); Debug.Listeners.Add(new TextWriterTraceListener(Console.Out)); MyClass c = new MyClass(1); c.VerifyState(); }
}</source>