Csharp/CSharp Tutorial/Development/Trace Listener
Содержание
Add ConsoleTraceListener to Trace
<source lang="csharp">using System; using System.Collections.Generic; using System.Diagnostics; using System.Text;
public class MainClass {
public static void Main() { Trace.Listeners.Add(new ConsoleTraceListener()); }
}</source>
Add DefaultTraceListener to Trace
<source lang="csharp">using System; using System.Collections.Generic; using System.Diagnostics; using System.Text;
public class MainClass {
public static void Main() { DefaultTraceListener dtl = new DefaultTraceListener(); dtl.AssertUiEnabled = true; Trace.Listeners.Add(dtl); }
}</source>
Add TextWriterTraceListener to Debug Listener
<source lang="csharp">#define DEBUG using System; using System.Globalization; using System.Diagnostics; class MainClass {
public static void Main() { TextWriterTraceListener tl = new TextWriterTraceListener(Console.Out); Debug.Listeners.Add(tl); Debug.WriteLine("Starting Main()"); Debug.Assert(1 == 2, "1==2"); Debug.WriteLine("Exiting Main()"); }
}</source>
Starting Main() Fail: 1==2 Exiting Main()
Clear Trace Listener and Add EventLogTraceListener
<source lang="csharp">using System; using System.Diagnostics; using System.Collections; using System.Data; using System.Text; public class MainClass{
public static void Main(){ Trace.Listeners.Clear(); // clear all listeners Trace.Listeners.Add(new EventLogTraceListener("BugRiddenLog")); Debug.Assert(1 == 0,"Error!","Error: 1 == 0"); }
}</source>
Demonstrates debug output
<source lang="csharp">#define DEBUG using System; using System.Globalization; using System.Diagnostics; class MainClass {
public static void Main() { TextWriterTraceListener tl = new TextWriterTraceListener(Console.Out); Debug.Listeners.Add(tl); Debug.WriteLine("Starting Main()"); Debug.Assert(1 == 2, "1==2"); Debug.WriteLine("Exiting Main()"); }
}</source>
Starting Main() Fail: 1==2 Exiting Main()
Post-deployment tracing
<source lang="csharp">#define TRACE using System; using System.Globalization; using System.Diagnostics; class MainClass {
public static void Main() { BooleanSwitch bsEnableTrace = new BooleanSwitch("TraceOutput", "Turn on tracing"); TextWriterTraceListener tl = new TextWriterTraceListener("tract.txt"); Trace.Listeners.Add(tl); EventLogTraceListener t2 = new EventLogTraceListener("Application"); Trace.Listeners.Add(t2); Trace.WriteLineIf(bsEnableTrace.Enabled,"Starting Main()"); if (bsEnableTrace.Enabled) { Trace.Assert( 1 == 2, "1 == 2"); } Trace.WriteLineIf(bsEnableTrace.Enabled, "Exiting Main()"); Trace.Flush(); Trace.Close(); }
}</source>
Write Trace based on the BooleanSwitch
<source lang="csharp">#define TRACE using System; using System.Globalization; using System.Diagnostics; class MainClass {
public static void Main() { BooleanSwitch bsEnableTrace = new BooleanSwitch("TraceOutput", "Turn on tracing"); TextWriterTraceListener tl = new TextWriterTraceListener("tract.txt"); Trace.Listeners.Add(tl); EventLogTraceListener t2 = new EventLogTraceListener("Application"); Trace.Listeners.Add(t2); Trace.WriteLineIf(bsEnableTrace.Enabled,"Starting Main()"); if (bsEnableTrace.Enabled) { Trace.Assert( 1 == 2, "1 == 2"); } Trace.WriteLineIf(bsEnableTrace.Enabled, "Exiting Main()"); Trace.Flush(); Trace.Close(); }
}</source>