zoukankan      html  css  js  c++  java
  • .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");
            }
        }
    }
    
  • 相关阅读:
    Neko's loop HDU-6444(网络赛1007)
    Parameters
    SETLOCAL
    RD / RMDIR Command
    devenv 命令用法
    Cannot determine the location of the VS Common Tools folder.
    'DEVENV' is not recognized as an internal or external command,
    How to change Visual Studio default environment setting
    error signing assembly unknown error
    What is the Xcopy Command?:
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1629289.html
Copyright © 2011-2022 走看看