<add> 元素 <sharedListeners>

将侦听器添加到 sharedListeners 集合。 sharedListeners 是任何 <源><跟踪> 都可以引用的侦听器的集合。 默认情况下,集合中的 sharedListeners 侦听器不会放在集合中 Listeners 。 它们必须按名称添加到 <源><跟踪>。 无法在运行时在代码中获取集合中的 sharedListeners 侦听器。

<configuration>
  <system.diagnostics>
    <sharedListeners>
      <add>

Syntax

<add name="name"
  type="TraceListenerClassName, Version, Culture, PublicKeyToken"
  initializeData="data"
  traceOutputOptions = "None"
/>

特性和元素

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

特性

Attribute Description
name 必需属性。

指定用于将共享侦听器添加到 Listeners 集合的侦听器的名称。
type 必需属性。

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

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

指示要写入跟踪输出的数据的一个或多个 TraceOptions 枚举成员的字符串表示形式。 多个项用逗号分隔。 默认值为“None”。

子元素

元素 Description
<滤波器> 将筛选器添加到集合中的 sharedListeners 侦听器。

父元素

元素 Description
configuration 公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中的根元素。
system.diagnostics 指定收集、存储和路由消息的跟踪侦听器以及设置跟踪开关的级别。
sharedListeners 任何源或跟踪元素都可以引用的侦听器集合。

注解

.NET Framework 附带的侦听器类派生自该 TraceListener 类。 该特性的值 name 用于将共享侦听器添加到 Listeners 跟踪或跟踪源的集合。 属性的值 initializeData 取决于你创建的侦听器的类型。 并非所有跟踪侦听器都要求你指定 initializeData

注释

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

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

跟踪侦听器类 initializeData 属性值
ConsoleTraceListener useErrorStream构造函数的值ConsoleTraceListener。 将 initializeData 属性设置为“true”以将跟踪和调试输出写入标准错误流;将其设置为“false”以写入标准输出流。
DelimitedListTraceListener 写入到的文件 DelimitedListTraceListener 的名称。
System.Diagnostics.EventLogTraceListener 现有事件日志源的名称。
System.Diagnostics.EventSchemaTraceListener 写入到的文件 EventSchemaTraceListener 的名称。
System.Diagnostics.TextWriterTraceListener 写入到的文件 TextWriterTraceListener 的名称。
XmlWriterTraceListener 写入到的文件 XmlWriterTraceListener 的名称。

配置文件

此元素可用于计算机配置文件(Machine.config)和应用程序配置文件。

Example

以下示例演示如何使用<add>元素将集合添加到TextWriterTraceListenertextListenersharedListeners集合。 textListener 由名称添加到 Listeners 跟踪源 TraceSourceApp的集合中。 侦听器 textListener 将跟踪输出写入文件myListener.log。

<configuration>
  <system.diagnostics>
    <sources>
      <source name="TraceSourceApp" switchName="sourceSwitch"
        switchType="System.Diagnostics.SourceSwitch">
        <listeners>
          <add name="console"
            type="System.Diagnostics.ConsoleTraceListener"/>
          <add name="textListener"/>
          <remove name="Default"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      <add name="textListener"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="myListener.log"/>
    </sharedListeners>
    <switches>
      <add name="sourceSwitch" value="Warning"/>
    </switches>
  </system.diagnostics>
</configuration>

另请参阅