/*
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);
}
}
}