代码改变世界

vs调试输出

2009-02-27 16:02  Iron  阅读(767)  评论(0编辑  收藏  举报

.net知识和学习方法系列(十三)Debug和Trace

桂素伟

Debug类和 Trace类都位于 System.Diagnostics。

Debug类提供一组帮助调试代码的方法和属性。 Trace类提供一组帮助跟踪代码执行的方法和属性,通俗的说就是为在不打断程序的调试或跟踪下,用来记录程序执行的过程。两个类都是密封类,不能被继承。

Debug类的例子(代码 A):

1           TextWriterTraceListener myListener=new TextWriterTraceListener(“F:""DebugLog.txt”);
2           Debug.Listeners.Add(myListener);
3           Debug.WriteLine("这是调试");
4           Debug.Flush();
5           Listener.Flush();

Trace类的例子(代码 B):

1           TextWriterTraceListener myListener=new TextWriterTraceListener("F:""TraceLog.txt");
2        Trace.Listeners.Add(Listener);
3           Trace.WriteLine("这是跟踪");
4           Trace.Flush();
5           Listener.Flush();

这两个类有什么区别呢?

首先我们设置程序为调试方式,如下图所示

用代码A测试,会发现F:"DebugLog.txt中有内容,为“这是调试”,如果用代码B测试,会发现F:"TraceLog.txt中有内容,为“这是跟踪”。

现在,我们设置程序为发布方式,如下图所示

同样用A,B两段代码测试,会发现,F:"DebugLog.txt中是没有内容的,但F:"TraceLog.txt中还是“这是跟踪”的文字。这里说明了一点,Debug类的内容输出,只在Debug模式下生成的exe中起作用,如果改成Release模式下生成的exe,就失去了作用,Trace类则都起作用。

感谢:http://msdn.microsoft.com/zh-cn/dd366051.aspx