在 .net 类库中有一个 system.diagnostics 命名空间,该命名空间提供了一些与系统进程、事件日志、和性能计数器进行交互的类库。当中包括了两个对开发人员而言十分有用的类——debug类和trace类。debug类里所提供的函数仅在编译时带#debug宏参数才奏效,一旦到了release版本中,这些函数都会被忽略。也就是说debug类的功能仅在程序员开发的时候能用。而trace则不同,它能在release版本的程序中也被运行,这样程序员就可以在release版本的程序中添加一些debug类提供的功能了。
下面介绍一下如何通过"配置App.config重定向Trace输出到文本文件"的方法来做程序日志
App.config配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<switches>
<add name="switch" value="4"/>
</switches>
<trace autoflush="true" indentsize="2">
<listeners>
<add name="listener" type="System.Diagnostics.TextWriterTraceListener" initializeData="AppLog.txt"/>
</listeners>
</trace>
</system.diagnostics>
</configuration>
代码:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
Trace.WriteLine(new Random(Guid.NewGuid().GetHashCode()).Next(100));
}
}
}
}
程序运行后,在运行目录下新增AppLog.txt
利用
system.diagnostics.debug 类和 system.diagnostics.trace 类可以方便地进行调试程序并检测程序运行情况。
debug类的所有调用仅在程序的debug版本中有效;而trace类的调用能在release版本和debug版本中都有效。