Mega Code Archive

 
Categories / C# / Development Class
 

Demonstrates routing debug messages to a file

/* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794 */ // Listener.cs -- Demonstrates routing debug messages to a file. // //                Compile this program with the following command line: //                    C:>csc /debug:full /d:TRACE Listener.cs using System; using System.Diagnostics; using System.IO; namespace nsDebugTest {     public class Listener     {         static void Main(string[] args)         {             EnableDebugging();             Trace.AutoFlush = true;             Trace.WriteLine ("Debug is on"); // Add the fllowing three lines to start another listener:             FileStream strm = new FileStream ("Once.txt", FileMode.Create);             TextWriterTraceListener listen = new TextWriterTraceListener (strm);             Trace.Listeners.Add (listen);             int Num = 1;             Trace.Assert (Num == 0, "Num is not equal to 0"); // Add the following three lines:             Trace.Listeners.Remove (listen);             listen.Flush ();             strm.Close ();             clsTest test = new clsTest(42);             test.ShowValue(); //            Trace.Listeners.Remove ("Console"); //            Trace.WriteLine ("\r\nConsole output has been disabled");         }         static void EnableDebugging ()         {             Trace.Listeners.Clear(); //            Trace.Listeners.Add (new TextWriterTraceListener(Console.Out, "Console"));             Trace.Listeners.Add (new TextWriterTraceListener(Console.Out, "Console"));             FileStream strm = new FileStream ("./Trace.out", FileMode.Create);             StreamWriter writer = new StreamWriter (strm);             Trace.Listeners.Add (new TextWriterTraceListener(writer));         }     }     class clsTest     {         public clsTest (int num)         {             m_Num = num;         }         int m_Num;         public void ShowValue()         {             try             {                 DoSomething ();             }             catch (Exception e)             {                 Console.WriteLine (e.StackTrace);             }             if (m_Num < 50)             {                 Debug.WriteLine (m_Num + " is less than 50");                 Console.WriteLine (m_Num + " is less than 50");             }         }         void DoSomething ()         {             Trace.WriteLine (Environment.StackTrace);         }     } }