• .NET : 跟踪和调试技术


    我们如果要为.NET程序启用跟踪和调试,则可以使用System.Diagnostics空间下面的一些API。为了方便编程,我们通常会使用配置文件来定义有关的信息

    1. 配置文件

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.diagnostics>
    
        
        <trace autoflush="true">
          <listeners>
            <clear/>
            <add name="default" type="System.Diagnostics.ConsoleTraceListener" initializeData=""></add>
            <add name="text" type="System.Diagnostics.XmlWriterTraceListener" initializeData="e:\temp\trace.xml"></add>
          </listeners>
        </trace>
      </system.diagnostics>
    </configuration>

    2. 写入调试信息

    using System.Diagnostics;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Debug.WriteLine("Hello,world");
    
                
            }
        }
    }
    

    3. 测试结果

    image

    image

    4. 假设需要根据不同的设置来将调试信息保存到不同的Listener中去,那么该怎么办呢

    假设,我们只是希望将一些紧要的跟踪信息写入到XML文件中,其他的消息输出到屏幕即可。那么按照下面这样修改一下配置文件

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.diagnostics>
        <sources>
          <source name="sample" switchValue="Error">
            <listeners>
              <add name="text" type="System.Diagnostics.XmlWriterTraceListener" initializeData="e:\temp\trace.xml"></add>
            </listeners>
          </source>
        </sources>
    
        <trace autoflush="true">
          <listeners>
            <clear/>
            <add name="default" type="System.Diagnostics.ConsoleTraceListener" initializeData=""></add>
          </listeners>
        </trace>
      </system.diagnostics>
    </configuration>
     
    代码
    using System.Diagnostics;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Debug.WriteLine("Hello,world");
    
    
                //写入特定的源
                TraceSource source = new TraceSource("sample");
                source.TraceData(TraceEventType.Error, 1, "Hello,World");
            }
        }
    }
    
  • 相关阅读:
    小条打印机输出简析
    Visual Studio离线安装
    删除“Open in Windows Terminal”右键菜单
    《新媒体营销精华:精准定位+爆款打造+匠心运营+内容变现》笔者的新书,欢迎各位粉丝上京东购买
    vue3.0 的 Composition API 的一种使用方法
    对比传统的Xilinx AMP方案和OPENAMP方案-xapp1078和ug1186【转】
    OpenAMP简介【转】
    git 用法【笔记】
    针对非对称多处理系统实现更简单的软件开发【转】
    内核探测工具systemtap简介【转】
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1629289.html
Copyright © 2020-2023  润新知