XmlWriterTraceListener クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
トレース出力またはデバッグ出力を XML エンコードデータとして TextWriter または Stream ( FileStreamなど) に転送します。
public ref class XmlWriterTraceListener : System::Diagnostics::TextWriterTraceListener
public class XmlWriterTraceListener : System.Diagnostics.TextWriterTraceListener
type XmlWriterTraceListener = class
inherit TextWriterTraceListener
Public Class XmlWriterTraceListener
Inherits TextWriterTraceListener
- 継承
例
次のコード例は、 XmlWriterTraceListener クラスを使用して、エスケープされたデータとエスケープされていないデータの両方をファイル ログに書き込む方法を示しています。
using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;
class testClass
{
static void Main()
{
File.Delete("NotEscaped.xml");
TraceSource ts = new TraceSource("TestSource");
ts.Listeners.Add(new XmlWriterTraceListener("NotEscaped.xml"));
ts.Switch.Level = SourceLevels.All;
string testString = "<Test><InnerElement Val=\"1\" /><InnerElement Val=\"Data\"/><AnotherElement>11</AnotherElement></Test>";
XmlTextReader myXml = new XmlTextReader(new StringReader(testString));
XPathDocument xDoc = new XPathDocument(myXml);
XPathNavigator myNav = xDoc.CreateNavigator();
ts.TraceData(TraceEventType.Error, 38, myNav);
ts.Flush();
ts.Close();
File.Delete("Escaped.xml");
TraceSource ts2 = new TraceSource("TestSource2");
ts2.Listeners.Add(new XmlWriterTraceListener("Escaped.xml"));
ts2.Switch.Level = SourceLevels.All;
ts2.TraceData(TraceEventType.Error, 38, testString);
ts2.Flush();
ts2.Close();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Diagnostics
Class testClass
Shared Sub Main()
File.Delete("NotEscaped.xml")
Dim ts As New TraceSource("TestSource")
ts.Listeners.Add(New XmlWriterTraceListener("NotEscaped.xml"))
ts.Switch.Level = SourceLevels.All
Dim testString As String = "<Test><InnerElement Val=""1"" /><InnerElement Val=""Data""/><AnotherElement>11</AnotherElement></Test>"
Dim myXml As New XmlTextReader(New StringReader(testString))
Dim xDoc As New XPathDocument(myXml)
Dim myNav As XPathNavigator = xDoc.CreateNavigator()
ts.TraceData(TraceEventType.Error, 38, myNav)
ts.Flush()
ts.Close()
File.Delete("Escaped.xml")
Dim ts2 As New TraceSource("TestSource2")
ts2.Listeners.Add(New XmlWriterTraceListener("Escaped.xml"))
ts2.Switch.Level = SourceLevels.All
ts2.TraceData(TraceEventType.Error, 38, testString)
ts2.Flush()
ts2.Close()
End Sub
End Class
注釈
Note
XmlWriterTraceListener クラスのインスタンスを作成するには、アンマネージ コードのアクセス許可が必要です。
XmlWriterTraceListener クラスは、トレースとデバッグの情報を XML でエンコードされたテキスト ストリームに変換します。 次の表に、XML 出力の説明を示します。 サービス トレース ビューアー ツール (SvcTraceViewer.exe) を使用して、XML 出力を表示できます。
コードで XmlWriterTraceListener を作成できます。 または、.NET Framework アプリの場合は、アプリケーション構成ファイルを使用して XmlWriterTraceListener を有効または無効にしてから、アプリケーションで構成された XmlWriterTraceListener を使用することもできます。 XmlWriterTraceListenerを構成するには、アプリケーションの名前に対応する構成ファイルを編集します。 このファイルでは、リスナーの追加または削除、リスナーのプロパティの設定、またはリスナーの削除を行うことができます。 構成ファイルは、次の例のように書式設定する必要があります。
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="xmlListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="xmlOutput.xml"
traceOutputOptions="ProcessId, DateTime" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
XmlWriterTraceListener クラスは、基底クラスのFilterから TraceListener プロパティを継承します。
Filter プロパティを使用すると、リスナーで追加レベルのトレース出力フィルター処理を実行できます。 フィルターが存在する場合、トレース リスナーの Trace メソッドは、フィルターの ShouldTrace メソッドを呼び出して、トレースを出力するかどうかを判断します。
Note
使用中または使用できないファイルに書き込もうとすると、ファイル名の先頭に GUID が自動的に付けられます。
Note
リスナー メソッドは、 Debug、 Trace、および TraceSource クラスのメソッドによって呼び出されることを目的としています。 リスナー メソッドは、アプリケーション コードから直接呼び出されるものではありません。 XmlWriterTraceListener リスナーは、主にTraceSource クラスで使用することを目的としています。 WriteメソッドとWriteLine メソッドは、TraceクラスとDebug クラスによって呼び出すことができます。また、TraceおよびDebugが値を指定しない XML 要素には既定値が指定されます。
次の表では、XML 出力の要素と属性について説明します。
| 要素 | 属性 | アウトプット | メモ |
|---|---|---|---|
CallStack |
None | Callstack プロパティにTraceOutputOptions フラグが存在するかどうかによって異なります。 | >や<などの特殊文字はエスケープ シーケンスに置き換えられます。 次のエスケープ文字変換テーブルを参照してください。 |
Computer |
None | 常に存在します。 | MachineName プロパティの値。 |
Correlation |
ActivityID |
常に存在する | 指定しない場合、既定値は空の GUID です。 |
RelatedActivityID |
Trace メソッド呼び出しに relatedActivityId パラメーターが存在するかどうかによって異なります。 |
relatedActivityId メソッドのTraceTransfer パラメーター。 |
|
DataItem |
None |
data メソッドのTraceData パラメーターによって異なります。 |
この要素には要素の配列または 1 つの要素を含めることができるため、値はDataItem要素の下のTraceDataノードのセットとして書き込まれます。データ出力では、渡されたデータ オブジェクトの ToString メソッドが使用されます。 |
EventID |
None | 常に存在します。 | パラメーター入力 (id)。 |
Execution |
ProcessName |
常に存在します。 | TraceEventCacheから。 |
ProcessID |
常に存在します。 | TraceEventCacheから。 | |
ThreadID |
常に存在します。 | TraceEventCacheから。 | |
Level |
None | 常に存在します。 | パラメーター入力 ( eventTypeの数値)。 255 より大きいパラメーター値は 255 として出力されます。 |
LogicalOperationStack |
None | LogicalOperationStack プロパティにTraceOutputOptions フラグが存在するかどうかによって異なります。 | 複数の論理演算が存在する可能性があるため、値は LogicalOperation 要素の下LogicalOperationStackノードとして書き込まれます。 |
Message |
None | Trace メソッドの呼び出しにメッセージが存在するかどうかによって異なります。 | 書式設定引数が指定されている場合、この要素は書式設定されたメッセージです。 |
Source |
Name |
常に存在します。 | パラメーター入力。 |
SubType |
Name |
常に存在します。 | パラメーター入力。 |
TimeCreated |
SystemTime |
常に存在します。 | TraceEventCacheに存在しない場合、既定値は現在の時刻です。 |
TimeStamp |
None | Timestamp プロパティにTraceOutputOptions フラグが存在するかどうかによって異なります。 | TraceEventCacheから。 |
Type |
None | 常に存在します。 | 常に値 3。 |
次の表は、XML 出力でエスケープされる文字を示しています。 エスケープは、DataItem メソッドの data パラメーターに渡されたオブジェクトがTraceData オブジェクトの場合はエスケープされない、XPathNavigator要素を除くすべての要素と属性で発生します。 データ オブジェクトに XPathNavigator が使用されている場合は、 MoveToRoot メソッドが呼び出され、ルート ノード全体がエスケープされていないデータとしてトレースされます。
| エスケープ文字 | 価値 |
|---|---|
| & | & |
| < | < |
| > | > |
| 「」 | 「」 |
| |' | |
| 0xD | |
| 0xA |
コンストラクター
| 名前 | 説明 |
|---|---|
| XmlWriterTraceListener(Stream, String) |
指定したストリームをデバッグ出力およびトレース出力の受信者として使用して、指定した名前で XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
| XmlWriterTraceListener(Stream) |
指定したストリームをデバッグ出力およびトレース出力の受信者として使用して、 XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
| XmlWriterTraceListener(String, String) |
指定したファイルをデバッグ出力およびトレース出力の受信者として使用して、指定した名前で XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
| XmlWriterTraceListener(String) |
指定したファイルをデバッグ出力およびトレース出力の受信者として使用して、 XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
| XmlWriterTraceListener(TextWriter, String) |
指定したライターをデバッグ出力およびトレース出力の受信者として使用して、指定した名前で XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
| XmlWriterTraceListener(TextWriter) |
指定したライターをデバッグ出力およびトレース出力の受信者として使用して、 XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Attributes |
アプリケーション構成ファイルで定義されているカスタム トレース リスナー属性を取得します。 (継承元 TraceListener) |
| Filter |
トレース リスナーのトレース フィルターを取得または設定します。 (継承元 TraceListener) |
| IndentLevel |
インデント レベルを取得または設定します。 (継承元 TraceListener) |
| IndentSize |
インデント内のスペースの数を取得または設定します。 (継承元 TraceListener) |
| IsThreadSafe |
トレース リスナーがスレッド セーフかどうかを示す値を取得します。 (継承元 TraceListener) |
| Name |
この TraceListenerの名前を取得または設定します。 (継承元 TraceListener) |
| NeedIndent |
出力をインデントするかどうかを示す値を取得または設定します。 (継承元 TraceListener) |
| TraceOutputOptions |
トレース出力オプションを取得または設定します。 (継承元 TraceListener) |
| Writer |
トレース出力またはデバッグ出力を受け取るテキスト ライターを取得または設定します。 (継承元 TextWriterTraceListener) |
メソッド
| 名前 | 説明 |
|---|---|
| Close() |
トレースまたはデバッグ出力を受信しなくなったように、このリスナーの Writer を閉じます。 |
| CreateObjRef(Type) |
リモート オブジェクトとの通信に使用されるプロキシの生成に必要なすべての関連情報を含むオブジェクトを作成します。 (継承元 MarshalByRefObject) |
| Dispose() |
TraceListenerで使用されているすべてのリソースを解放します。 (継承元 TraceListener) |
| Dispose(Boolean) |
この TextWriterTraceListener オブジェクトを破棄します。 (継承元 TextWriterTraceListener) |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| Fail(String, String) |
エラー メッセージと詳細なエラー メッセージを含むトレース情報をファイルまたはストリームに書き込みます。 |
| Fail(String) |
TraceListener クラスを実装するときに作成したリスナーにエラー メッセージを出力します。 (継承元 TraceListener) |
| Flush() |
Writerの出力バッファーをフラッシュします。 (継承元 TextWriterTraceListener) |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetLifetimeService() |
古い.
このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
| GetSupportedAttributes() |
トレース リスナーでサポートされているカスタム属性を取得します。 (継承元 TraceListener) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| InitializeLifetimeService() |
古い.
このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| MemberwiseClone(Boolean) |
現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 (継承元 MarshalByRefObject) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
トレース情報、データ オブジェクト、およびイベント情報をファイルまたはストリームに書き込みます。 |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
トレース情報、データ オブジェクト、およびイベント情報をファイルまたはストリームに書き込みます。 |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
トレース情報、書式設定されたメッセージ、およびイベント情報をファイルまたはストリームに書き込みます。 |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
トレース情報、メッセージ、およびイベント情報をファイルまたはストリームに書き込みます。 |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
トレースとイベントの情報をリスナー固有の出力に書き込みます。 (継承元 TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
関連アクティビティの ID、メッセージ、およびイベント情報を含むトレース情報をファイルまたはストリームに書き込みます。 |
| Write(Object, String) |
ToString() クラスを実装するときに作成するリスナーに、カテゴリ名とオブジェクトの TraceListener メソッドの値を書き込みます。 (継承元 TraceListener) |
| Write(Object) |
ToString() クラスを実装するときに作成するリスナーに、オブジェクトの TraceListener メソッドの値を書き込みます。 (継承元 TraceListener) |
| Write(String, String) |
TraceListener クラスを実装するときに作成するリスナーに、カテゴリ名とメッセージを書き込みます。 (継承元 TraceListener) |
| Write(String) |
追加のコンテキスト情報を含まない逐語的メッセージをファイルまたはストリームに書き込みます。 |
| WriteIndent() |
このクラスを実装するときに作成するリスナーにインデントを書き込み、NeedIndent プロパティを |
| WriteLine(Object, String) |
ToString() クラスを実装するときに作成するリスナーに、カテゴリ名とオブジェクトの TraceListener メソッドの値を書き込み、続けて行ターミネータを書き込みます。 (継承元 TraceListener) |
| WriteLine(Object) |
ToString() クラスを実装するときに作成するリスナーに、オブジェクトの TraceListener メソッドの値を書き込み、続けて行終端記号を書き込みます。 (継承元 TraceListener) |
| WriteLine(String, String) |
TraceListener クラスを実装するときに作成するリスナーに、カテゴリ名とメッセージを書き込み、続けて行終端記号を書き込みます。 (継承元 TraceListener) |
| WriteLine(String) |
追加のコンテキスト情報の後に現在の行終端記号が続かずに、逐語的なメッセージをファイルまたはストリームに書き込みます。 |