<sharedListeners> 的 <add> 元素

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

<配置>
  <system.diagnostics>
    <sharedListeners>
      <add>

语法

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

特性和元素

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

特性

属性 描述
name 必需的特性。

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

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

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

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

子元素

元素 说明
<filter> 将筛选器添加到 sharedListeners 集合中的侦听器。

父元素

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

备注

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

注意

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

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

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

配置文件

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

示例

下面的示例演示如何使用 <add> 元素将 TextWriterTraceListenertextListener 添加到 sharedListeners 集合中。 按名称将 textListener 添加跟踪源 TraceSourceAppListeners 集合中。 textListener 侦听器将跟踪输出写入文件 myListener。

<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>

请参阅