我们如果要为.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");
}
}
}