<add>用于跟踪的<listeners><元素>

将侦听器添加到 Listeners 集合。

<configuration>
  <system.diagnostics>
    <trace>
      <listeners>
        <add>

Syntax

<add name="name"
     type="trace listener class name, Version, Culture, PublicKeyToken"
     initializeData="data"/>

特性和元素

下列各节描述了特性、子元素和父元素。

特性

Attribute Description
类型 必需属性。

指定侦听器的类型。 必须使用满足 指定完全限定类型名称中指定的要求的字符串。
initializeData 可选属性。

传递给指定类的构造函数的字符串。
name 可选属性。

指定侦听器的名称。

子元素

元素 Description
<滤波器> 将筛选器添加到集合中的 Listeners 侦听器以用于跟踪。

父元素

元素 Description
configuration 公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中的根元素。
listeners 指定收集、存储和路由消息的侦听器。 侦听器将跟踪输出定向到适当的目标。
system.diagnostics 指定 ASP.NET 配置节的根元素。
trace 包含收集、存储和路由跟踪消息的侦听器。

注解

DebugTrace类共享同一Listeners集合。 如果将侦听器对象添加到其中一个类中的集合,则另一个类使用相同的侦听器。 侦听器类派生自 .TraceListener

如果未指定 name 跟踪侦听器的属性, Name 跟踪侦听器的默认值为空字符串(“)。 如果应用程序只有一个侦听器,则可以在不指定名称的情况下添加它,并通过指定名称的空字符串将其删除。 但是,如果应用程序有多个侦听器,则应为每个跟踪侦听器指定唯一的名称,这样就可以识别和管理集合中的ListenersListeners单个跟踪侦听器。

注释

添加同一类型的多个跟踪侦听器,并且同名只会导致该类型的一个跟踪侦听器和要添加到集合中 Listeners 的名称。 但是,你可以以编程方式向 Listeners 集合添加多个相同的侦听器。

属性的值 initializeData 取决于你创建的侦听器的类型。 并非所有跟踪侦听器都需要指定 initializeData

注释

使用特性 initializeData 时,可能会收到编译器警告“未声明'initializeData'属性”。发生此警告是因为配置设置根据抽象基类进行验证,该基类 TraceListener无法识别该 initializeData 属性。 通常,对于具有采用参数的构造函数的跟踪侦听器实现,可以忽略此警告。

下表显示了 .NET Framework 附带的跟踪侦听器,并描述了其 initializeData 属性的值。

跟踪侦听器类 initializeData 属性值
System.Diagnostics.ConsoleTraceListener useErrorStream构造函数的值ConsoleTraceListener。 将initializeData属性设置为“true”,将跟踪和调试输出写入到 Console.Error;要写入的 falseConsole.Out
System.Diagnostics.DelimitedListTraceListener 写入到的文件 DelimitedListTraceListener 的名称。
System.Diagnostics.EventLogTraceListener 现有事件日志源的名称。
System.Diagnostics.EventSchemaTraceListener 写入到的文件 EventSchemaTraceListener 的名称。
System.Diagnostics.TextWriterTraceListener 写入到的文件 TextWriterTraceListener 的名称。
System.Diagnostics.XmlWriterTraceListener 写入到的文件 XmlWriterTraceListener 的名称。

Example

以下示例演示如何使用 <add> 元素将侦听器 MyListenerMyEventListener 集合添加到 Listeners 集合。 MyListener 创建一个调用 MyListener.log 的文件,并将输出写入文件。 MyEventListener 在事件日志中创建一个条目。

<configuration>
   <system.diagnostics>
      <trace autoflush="true" indentsize="0">
         <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener, system, version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\myListener.log" />
            <add name="MyEventListener"
                 type="System.Diagnostics.EventLogTraceListener, system, version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"                 initializeData="MyConfigEventLog"/>
            <add name="configConsoleListener"
                 type="System.Diagnostics.ConsoleTraceListener, system, version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
         </listeners>
      </trace>
   </system.diagnostics>
</configuration>

另请参阅