分享

Diagnostics.Trace 保存txt

 Fredanf 2012-04-23

Diagnostics.Trace 保存txt  

MSDN有如下说明:

幸运的是,不必一行一行地逐句通过应用程序来弄清楚发生了什么。Systems.Diagnostics   命名空间包括   Trace   和   Debug   类。这两个类(它们本质上相同)包括许多静态方法,这些方法可以用于使代码收集有关代码执行路径、代码覆盖范围甚至是性能分析的信息。两个类还提供   Assert   方法,该方法检查条件,并在条件为   false   时显示一条消息。

若要使用   Trace   和   Debug   类,请执行下列三个步骤。  

定义   TRACE   或   DEBUG   符号。  
创建对应的   Listener   的新实例。  
向代码中添加对   Trace   或   Debug   类的调用。  
定义   —   若要启用调试或跟踪,必须首先定义对应的符号。对于   Visual   C#(以及   C++   托管扩展)或   Visual   Basic   .NET,可以在编译时使用条件编译开关   /d(efine)   定义,如下面的代码所示:

csc   /target:library   /debug+   /d:TRACE   math.cs
vbc   /target:library   /debug+   /d:TRACE=True   math.vb
源代码本身也可以定义符号,如下面的代码所示:

#define   TRACE           //   for   C#   or   the   Managed   Extensions   for   C++
#Const   TRACE=1         '   for   Visual   Basic   .NET
创建   —   由   TraceListener   捕获   Debug   和   Trace   输出。默认情况下,输出自动发送到   DefaultTraceListener,它再使用   OutputDebugString   Windows   API   将输出发送到   Windows   系统调试器,并使用   Debugger.Log   方法发送到调试器。如果没有附加调试器,则使用   Debugger.Log   发送的消息无效。

如果在基于   Windows   的调试器内操作,“输出”窗口将显示   Debug   和   Trace   消息。但是,如果在调试器外部运行(例如,在测试人员的计算机上),或者要将调试信息保存到基于文本的日志文件中,则必须创建一个新的   Listener   并将它添加到   Listeners   集合中。System.Diagnostic   命名空间提供   EventLogTraceListener   和   TextWriterTraceListener。若要创建文本文件来处理调试消息,则只需下列一行代码即可。

Trace.Listeners.Add(new  
      TextWriterTraceListener(File.Create( "output.txt ")));
添加   —   最后,可以添加各种   Trace.Write   方法调用,以在运行时生成调试信息,如下面的代码所示:

Trace.WriteLine( " ");
Trace.WriteLine( "Starting   tracing... ");
由于输出文件的头几个字节包含有关文件的文本编码的信息,且不可读,您可能需要首先执行空   WriteLine   方法才能开始在新的一行上记录。

要注意的下一件事是对   Trace.Indent   的调用,在默认情况下将输出缩进四个空格:

Trace.Indent();
对   Trace.Unindent   的后续调用将输出调整回左对齐。

此示例程序还使用   Trace   的   WriteLineIf   方法来生成日志记录消息,但只有当某些条件不满足时才这样做。在这种特定的情况下,代码预计第一个数字项将以非零数字开始。如果该测试失败,将显示一则消息,如以下代码行所示。

Trace.WriteLineIf(test   ==   "0 ",   "Oops:   Leading   zero ");   //   C#
Trace.WriteLineIf(test   =   "0 ",   "Oops:   Leading   zero ")       '   VB
将所有这些放在一起,执行示例程序将会创建下面的   Output.txt   文件。

Starting   Tracing...
        InitializeComponent()
                Creating   controls
                Setting   up   Label   and   TextBox
                Setting   up   numeric   buttons
                Setting   up   operations   buttons
                Adding   Clear   and   Calculate
                Adding   to   Controls   collection
        9   Clicked
        -   Clicked
        6   Clicked
        Calculate   Clicked
Dispose()
Assert   方法以类似的方式操作,只不过输出的形式是详细的错误对话框,且测试失败。对应的   Assert   方法与下面的代码类似。

Trace.Assert(test   !=   "0 ",   "Oops ",   "Leading   zero ");   //   C#
Trace.Assert(test   <>   "0 ",   "Oops ",   "Leading   zero ")     '   Visual   Basic   .NET
当   Calc.exe   在运行且用户输入前导零时,将产生下面的对话框。


注意       如果程序没有执行完就失败了,将产生一个   0   字节的   Output.txt   文件。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多