zoukankan      html  css  js  c++  java
  • c# Trace.Assert用法

    注意:

    以Trace类做示例,但Debug类也通用。

    Trace.Listeners默认是一个System.Diagnostics.DefaultTraceListener类型,这个类型的侦听器会在断言时弹出一个对话框,如下代码:

    // using System.Diagnostics;

    Trace.Assert(false,"hehe");

    执行后会出现如下对话框:

    hehe

    方法一就是清空Trace的默认侦听器,然后加入自己的侦听器,比如TextWriterTraceListener:

    后台:

    using System.Diagnostics;
    namespace test_trace{
     public class test{
    public void main(){
        Trace.Listeners.Clear();
    
       //自动清空缓冲(即时写入)
    
       Trace.AutoFlush=true;
    
         Trace.Listeners.Add(newTextWriterTraceListener("app.log"));
    
         Trace.Assert(false,"hehe");
    }
    }

    第二种方法就是通过修改应用程序集的配置文件(app.config)

    <configuration>
    
    <system.diagnostics>
    
    <trace autoflush="true">
    
    <listeners>
    
    <!--删除默认侦听器-->
    
    <clear/>
    
    <!--加入侦听器-->
    
    <add name="listener1" type="System.Diagnostics.TextWriterTraceListener" initializeData="app.log"/>
    
    </listeners>
    
    </trace>
    
    </system.diagnostics>
    
    </configuration>

    第三种方法也是在配置文件里,其实<system.diagnostics>元素下有直接对断言的支持,使用<assert>元素。assertuienabled属性代表是否显示断言对话框,而logfilename代表记录文件的位置。

    <configuration>
    
    <system.diagnostics>
    
    <assert assertuienabled="false" logfilename="app.log"/>
    
    </system.diagnostics>
    
    </configuration>

    最后需要注意的是第三种方法输出的记录最详细,而且不需要设置Trace类的属性。第一行的”hehe”是前两种方法的输出。而后面的文字全是第三种方法的输出。

    Fail: hehe

    ---- DEBUG ASSERTION FAILED ----

    ---- Assert Short Message ----

    hehe

    ---- Assert Long Message ----

    at Program.Main() e:\users\mgen\documents\visual studio 2010\Projects\Mgen\Mgen\Program.cs(11)

  • 相关阅读:
    Something broke! (Error 500)——reviewboard
    linux内核--自旋锁的理解
    I.MX6 mkuserimg.sh hacking
    I.MX6 DNS 查看、修改方法
    I.MX6 android mkuserimg.sh
    I.MX6 AW-NB177NF wifi HAL 调试修改
    I.MX6 wpa_supplicant_8 编译问题
    I.MX6 MAC Address hacking
    I.MX6 MAC地址修改
    I.MX6 U-boot imxotp MAC address 写入
  • 原文地址:https://www.cnblogs.com/wang726zq/p/Trace.html
Copyright © 2011-2022 走看看