.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. 测试结果
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"); } } }