在 .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版本中都有效。