如何向应用程序代码添加跟踪语句


最常用于跟踪的方法是用于将输出写入侦听器的以下方法:WriteWriteIfWriteLineWriteLineIfAssert 和 Fail。这些方法可分为两类:WriteWriteLine 和 Fail 都无条件地发出输出,而 WriteIfWriteLineIf 和 Assert 则检验 Boolean 条件并根据条件的值来写入或不写入。WriteIf 和 WriteLineIf 在条件为 true 时发出输出,而 Assert 在条件为 false 时发出输出。

当设计跟踪和调试策略时,应考虑所需的输出形式。填充不相关信息的多个 Write 语句将创建难于阅读的日志。另一方面,如果使用 WriteLine 将相关语句放置在单独的行上,可能会难以区分哪些信息应该在一起。通常,当需要将来自多个信息源的信息组合起来创建单个提示性消息时,应使用多个Write 语句;当需要创建单个完整消息时,应使用 WriteLine 语句。

写入整个行

  • 调用 WriteLine 或 WriteLineIf 方法。

    一个回车符将附加在此方法返回的消息末尾,使 WriteWriteIfWriteLine 或 WriteLineIf 返回的下一则消息将以如下行开始:

    VB
    Dim errorFlag As Boolean = False
    Trace.WriteLine("Error in AppendData procedure.")
    Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.") 
    
    
    

    C#
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteLine ("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag, 
       "Error in AppendData procedure.");
    
    

    J#
    boolean errorFlag = false;
    System.Diagnostics.Trace.WriteLine("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag, 
       "Error in AppendData procedure.");
    

写入部分行

  • 调用 Write 或 WriteIf 方法。

    由 WriteWriteIfWriteLine 或 WriteLineIf 生成的下一条消息将会在由 Write 或 WriteIf 语句生成的消息所在的同一行上开始:

    VB
    Dim errorFlag As Boolean = False
    Trace.WriteIf(errorFlag, "Error in AppendData procedure.")
    Debug.WriteIf(errorFlag, "Transaction abandoned.")
    Trace.Write("Invalid value for data request")
    
    

    C#
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag, 
       "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
    Trace.Write("Invalid value for data request");
    
    

    J#
    boolean errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag, "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
          System.Diagnostics.Trace.Write("Invalid value for data request");
    

验证特定条件在执行方法之前或之后存在

  • 调用 Assert 方法。

    VB
    Dim I As Integer = 4
    Trace.Assert(I = 5, "I is not equal to 5.")
    
    

    C#
    int I = 4;
    System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
    
    

    C#
    int I = 4;
    System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
    
    说明:

    您可以将 Assert 用于跟踪和调试。此示例将调用堆栈输出到 Listeners 集合中的任何侦听器。有关更多信息,请参见托管代码中的断言Debug.Assert


  • 转自:msdn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值