当前位置 博文首页 > 流浪若相惜的专栏:追踪监听(TraceListener)

    流浪若相惜的专栏:追踪监听(TraceListener)

    作者:[db:作者] 时间:2021-08-01 08:37

    ?

    使用?TraceDebug?和?TraceSource时,必须具有用于收集和记录发送的消息的机制。?跟踪消息可由侦听器接收。?侦听器的用途是收集、存储和路由跟踪消息。?侦听器会将跟踪输出定向到适当的目标,如日志、窗口或文本文件。

    侦听器可供?DebugTrace?和?TraceSource?类使用,其中每个类都可以将其输出发送到多种侦听器对象。?以下是常用的预定义侦听器:

    • TextWriterTraceListener?将输出重定向到?TextWriter?类的实例或为?Stream?类的任何项。?它也可以写入到控制台或文件,因为它们是?Stream类。

    • EventLogTraceListener?将输出重定向到事件日志。

    • DefaultTraceListener?向?OutputDebugString?和?Debugger.Log?方法发出?Write和?WriteLine?消息。?在 Visual Studio 中,这会导致“输出”窗口中显示调试消息。?Fail和失败的?Assert?消息也发到?OutputDebugString?Windows API 和?Debugger.Log?方法,同样将显示消息框。?此行为是?Debug?和?Trace?消息的默认行为,因为?DefaultTraceListener?自动包含在每个?Listeners?集合中,且是自动包含的唯一侦听器。

    • ConsoleTraceListener?将跟踪或调试输出定向到标准输出或标准错误流。?

    • DelimitedListTraceListener?将跟踪或调试输出定向到文本编写器(如流编写器)或流(如文件流)。?跟踪输出采用由?Delimiter?属性指定的分隔符分隔的文本格式。?????

    • XmlWriterTraceListener?将跟踪或调试输出以 XML 编码数据的形式定向到?TextWriter?或?Stream,例如?FileStream。

    如果你希望?DefaultTraceListener?以外的任何侦听器接收?DebugTrace?和?TraceSource?输出,则必须将其添加到?Listeners?集合。?有关详细信息,请参阅How to: Create and Initialize Trace Listeners和How to: Use TraceSource and Filters with Trace Listeners。?侦听器集合中的任何侦听器均从跟踪输出方法获取相同消息。?例如,假设你设置了两个侦听器:TextWriterTraceListener?和?EventLogTraceListener?每个侦听器接收相同消息。?TextWriterTraceListener?将其输出定向到流,而?EventLogTraceListener?将其输出定向到事件日志。

    以下示例演示如何将输出发送到?Listeners?集合。

    C#cs