Debug和Trace都是调试类。
Debug类的方法只有DEBUG版中生效,而Trace的方法可以在DEBUG/RELEASE版本中生效。
一、Debug类
Debug类的控制台输出及断言Assert用法。
-
public static void TestDebug()
-
{
-
Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
-
Debug.AutoFlush = true;
-
Debug.Indent();
-
Debug.WriteLine("Debug WriteLine()");
-
Console.WriteLine("Console.WriteLine()");
-
Debug.WriteLine("Debug WriteLine2()");
-
Debug.Unindent();
-
-
/* Debug.Assert测试 */
-
int data = 0;
-
data--;
-
Debug.Assert(data > 0, "Debug.Assert: data小于0是不允许的!");
-
}
二、Trace类
Trace类的控制台、LOG文件输出及断言Assert用法
-
public static void TestTrace()
-
{
-
/* 设置跟踪信息同时在控制台和日志文件中输出 */
-
Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
-
Trace.Listeners.Add(new TextWriterTraceListener("testtrace.log"));
-
Trace.AutoFlush = true;
-
/* Trace Indent and Unindent 通过缩进来区分WriteLine的输出 */
-
Trace.Indent();
-
Trace.WriteLine("Entering Main");
-
Console.WriteLine("Hello World.");
-
Trace.WriteLine("Exiting Main\n");
-
Trace.Unindent();
-
/* Trace.Assert测试 */
-
int data = 0;
-
data--;
-
Trace.Assert(data > 0, "Trace.Assert: data小于0是不允许的!");
-
}
三、Trace类的五级信息输出用法
由于Trace类可以在发布版本中起作用,所以,在做Trace输出信息的时候,可能有些信息是调试的时候需要,发布的时候又不需要了,那怎么才能保证信息不在发布的时候输出呢?.NET为我们提供了五个控制Trace的跟踪级别,使用它们不必重新编译,他们跟别是:
-
public static void TestTraceWithSwitch()
-
{
-
Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
-
TraceSwitch ts = new TraceSwitch("mySwitch", "in App.config file");
-
Trace.WriteLineIf(ts.TraceError, "Error!!!");
-
Trace.WriteLineIf(ts.TraceWarning, "Warning!!!");
-
Trace.WriteLineIf(ts.TraceInfo, "Info!!!");
-
Trace.WriteLineIf(ts.TraceVerbose, "Verbose!!!");
-
-
Console.ReadKey();
-
}
App.config文件
参考网址:
http://blog.csdn.net/yunhaic/article/details/4863322
阅读(3090) | 评论(0) | 转发(0) |