<trace> 適用之 <listeners> 的 <add> 項目
將接聽程式加入至 Listeners 集合。
<add name="name"
type="trace listener class name, Version, Culture, PublicKeyToken"
initializeData="data"/>
屬性和項目
下列各節將說明屬性、子項目和父項目。
屬性
屬性 |
說明 |
---|---|
type |
必要屬性。 指定接聽程式的類型。 您必須使用符合指定完整的型別名稱中指定之需求的字串。 |
initializeData |
選擇性屬性。 傳遞至指定類別的建構函式的字串。 |
name |
選擇性屬性。 指定接聽程式的名稱。 |
子項目
無。
父項目
項目 |
描述 |
---|---|
configuration |
Common Language Runtime 和 .NET Framework 應用程式所使用之每個組態檔中的根項目。 |
listeners |
指定收集、存放及傳送訊息的接聽程式。 接聽程式將追蹤輸出導向至適當的目標。 |
system.diagnostics |
指定 ASP.NET 組態區段的根項目。 |
trace |
包含收集、存放和傳送追蹤訊息的接聽程式。 |
備註
Debug 和 Trace 類別共用一個 Listeners 集合。 如果您將接聽程式物件加入至其中一個類別的集合,另一個類別會使用相同的接聽程式。 接聽程式類別是從 TraceListener 類別衍生而來。
如果您未指定追蹤接聽程式的 name 屬性,追蹤接聽程式的 Name 預設為空字串 empty string ("")。 如果您的應用程式僅有一個接聽程式,可以不必指定名稱就新增,並為名稱指定空字串以移除。 然而,如果您的應用程式有超過一個接聽程式,則應為每個追蹤接聽程式指定唯一的名稱,此可讓您辨識並管理 Listeners 和 Listeners 集合中個別的追蹤接聽程式。
注意事項 |
---|
加入多個具有相同型別與相同名稱的追蹤接聽程式,結果只有一個該型別和名稱的追蹤接聽程式會加入至 Listeners 集合。不過,您可以經由程式設計方式將多個完全相同的接聽程式加入至 Listeners 集合中。 |
initializeData 屬性的值視您建立的接聽程式類型而定。 並非所有的接聽程式都會要求您指定 initializeData。
注意事項 |
---|
當您使用 initializeData 屬性時,可能會收到下列編譯器警告訊息:「'initializeData' 屬性未宣告」。這項警告出現的原因是驗證組態設定時其對象是基底型別 TraceListener,但此基底型別無法識別 initializeData 屬性。如果追蹤接聽程式實作中包含採用參數的建構函式,您通常可以忽略這項警告。 |
下表顯示 .NET Framework 隨附的追蹤接聽程式,並描述其 initializeData 屬性的值。
追蹤接聽程式類別 |
initializeData 屬性值 |
---|---|
ConsoleTraceListener 建構函式的 useErrorStream 值。 將 initializeData 屬性設成 "true",可將追蹤及偵錯輸出寫入至 Console.Error;設成 "false" 則會寫入至 Console.Out。 |
|
DelimitedListTraceListener 要寫入的檔案名稱。 |
|
現有事件記錄檔來源的名稱。 |
|
EventSchemaTraceListener 寫入的檔案名稱。 |
|
TextWriterTraceListener 寫入的檔案名稱。 |
|
XmlWriterTraceListener 寫入的檔案名稱。 |
範例
下列範例示範如何使用 **<add>**項目將接聽項 MyListener 和 MyEventListener 加入到追蹤來源 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>