这两个功能主要用于对程序进行调试和跟蹤把一些相关的结果可以输出到指定的地方在net的Debug模式下Debug和Trace都进行输出在Release模式下默认只开Trace可以通过设置将Trace关掉
主要就是两个类Trace和Debug的writefail和assert来进行输出Trace中还有tracewarning和traceerror两个选项主要是用来输出警告和错误类型的消息在事件查看器的消息类型中就能有所体现默认的输出是调试的输出窗口可以通过clear掉两个类的listener集合并添加新的listener来改变输出的位置net默认提供的有TextWriter输入到流或者文件EventLog事件查看器xml中当然也可以自己进行自定义
在执行完写入操作后要记得调用Debug或者Trace的flush或者close否则写文件的消息则不会写入指定的文件当然可以方便的设置它们的autoflush来确保每一次写操作的内容都写入了文件
listener还有自己的filter可以进行消息过滤可以实现absctract类TraceListener来创建过滤类然后赋给listener的相应属性
trace可以通过配置文件来实现控制输出的消息级别和是否输出消息原本以为这会有什么巧妙的地方也觉得很实用最后闹了半天其实还是需要自己在程序里面对BooleanSwitch或者TraceSwitch进行相应的if判断来确定输出消息只是这两个类的实例可以通过它们的displayName在配置文件里进行配置来决定程序是否输出消息或者输出什么等级的消息也可以通过配置文件来清空listener并且添加新的listener
具体的参见msdn中
跟蹤和调试设置架构
如何创建并初始化跟蹤开关
如何配置跟蹤开关
BooleanSwitch和TraceSwitch的类的说明
其实觉得debug跟trace功能还是很有用的大概看看觉得也就是这样吧主要就是当初在一本书中看到说用配置文件可以配置跟蹤消息的输出级别等等觉得非常有用的功能但那本书只是提了效果但未谈具体应用所以今天才研究了一下结果发现那个还是得自己在程序里写if觉得也不过就是如此了不过这些功能还是蛮有用的在实际当中