How to: Create and Initialize Trace Listeners

System.Diagnostics.Debug 和 System.Diagnostics.Trace 类向接收和处理消息的对象(成为侦听器)中发送消息。 在启用跟踪或调试后将自动创建并初始化一个如上所述的侦听器 System.Diagnostics.DefaultTraceListener 如果要将 Trace 或 Debug 输出定向到任何其他源,则必须创建并初始化其他跟踪侦听器。

所创建的侦听器应反映应用程序的需要。 例如,如果想要获取所有跟踪输出的文本记录,则创建 TextWriterTraceListener 侦听器;启用后,它会将所有输出都写入新的文本文件中。 另一方面,如果想要仅在应用程序执行过程中查看输出,则创建 ConsoleTraceListener 侦听器,以便将所有输出定向到控制台窗口。 EventLogTraceListener 可以将跟踪输出定向到事件日志。 有关详细信息,请参阅跟踪侦听器

可以在应用程序配置文件或代码中创建跟踪侦听器。 我们建议使用应用程序配置文件,因为它们可在不更改代码的情况下添加、修改或删除跟踪侦听器。

若要使用配置文件创建和初始化跟踪侦听器

  1. 请声明应用程序配置文件中的跟踪侦听器。 如果创建的侦听器需要的任何其他对象,请同时对它们进行声明。 下面的示例演示如何创建名为myListener 的侦听器,它将写入到文本文件 TextWriterOutput.log 中。

    <configuration>
      <system.diagnostics>
        <trace autoflush="false" indentsize="4">
          <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" />
            <remove name="Default" />
          </listeners>
        </trace>
      </system.diagnostics>
    </configuration>
    
  2. 在代码中使用 Trace 类以将消息写入到跟踪侦听器中。

    C#
    VB
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

若要在代码中创建和使用跟踪侦听器

  • 请将跟踪侦听器添加到 Listeners 集合并将跟踪信息发送到侦听器。

    C#
    VB
    Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener"));
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

    - 或 -

  • 如果不希望侦听器接收跟踪输出,则不要将其添加到 Listeners 集合。 可以通过调用侦听器自己的输出方法由独立于 Listeners 集合的侦听器发出输出。 下面的示例演示如何向不在 Listeners 集合中的侦听器写入代码行。

    C#
    VB
    TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput.log", "myListener");
    myListener.WriteLine("Test message.");
    // You must close or flush the trace listener to empty the output buffer.
    

    myListener.Flush();

  • 转msdn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值