1、首先总结一下Trace与Debug类的特性:
A、用法基本相同
只是Debug是在Debug本版本下使用
在Release版本下不会生成代码
而Trace在默认情况下是打开的
也就是说在Debug版本和Release版本下都会生成代码
B、都是sealed类
不能被继承
如果这两个类不能满足应用要求的话只能自己实现相关功能
重新编写所有方法
不能继承这两个类
2、从特性上可以看出
该两个类用法基本相同
研究并掌握Trace与Debug类
对各类软件调试、寻找Bug会有很大帮助
3、跟踪是一种在应用程序运行时监视其执行情况的方式
当开发.NET应用程序时
可以在其中添加跟踪和调试检测功能
并且在开发应用程序时和部署应用程序后
都可以使用该检测功能
利用Trace和Debug类
可以将有关错误和应用程序执行的信息记录到日志、文本文件或其他设备中
以便在随后进行分析
在应用程序中“插入检测点”对于分布式应用程序尤其有用
其方法是将跟踪语句放在代码中的关键位置
利用跟踪语句可以在应用程序中插入检测点
这样不仅可以在出错时显示信息
而且还可以显示相应的信息来监视应用程序的执行情况
4、以下链接中提供了实现文件保存跟踪信息的FileStreamWithBackup类
可实现跟踪信息的保存、跟踪信息文件的文件大小控制、文件备份、加入跟踪信息对应的时间信息
可以实现对程序调试运行状态的更全面跟踪
源码:http://www.codeproject.com/KB/do ... ceListeners_src.zip
下面是应用FileStreamWithBackup类的实例
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
FileStreamWithBackup fs = new FileStreamWithBackup("MyTrace.txt", 300, 10, FileMode.Append);
fs.CanSplitData = false;
TextWriterTraceListenerWithTime listener = new TextWriterTraceListenerWithTime(fs);
Trace.AutoFlush = true;
Trace.Listeners.Add(listener);
Trace.Assert(true, "Assertion that should not appear");
Trace.Assert(false, "Assertion that should appear in a trace file");
Trace.WriteLine(123, "Category 1");
Trace.WriteLineIf(true, "456", "Category 2");
Trace.WriteLineIf(false, 789, "Category 3 (should not appear)");
} |