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
注釈
注意
クラスのインスタンスを作成するには、アンマネージ コードのアクセス許可が 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 呼び出して、トレースを出力するかどうかを判断します。
注意
使用中または使用できないファイルに書き込もうとすると、ファイル名の先頭に GUID が自動的に付けられます。
注意
リスナー メソッドは、および TraceSource クラスのDebugTraceメソッドによって呼び出されることを目的としています。 リスナー メソッドは、アプリケーション コードから直接呼び出すことを意図したものではありません。 リスナーは XmlWriterTraceListener 、主に クラスで TraceSource 使用することを目的としています。 メソッドと WriteLine メソッドは Write クラスと Debug クラスによってTrace呼び出すことができます。既定値は、値を指定しない XML 要素TraceDebugに対して提供されます。
次の表では、XML 出力の要素と属性について説明します。
要素 | 属性 | Output | メモ |
---|---|---|---|
CallStack |
なし | プロパティに フラグが Callstack 存在するかどうか TraceOutputOptions によって異なります。 | や < などの>特殊文字は、エスケープ シーケンスに置き換えられます。 次のエスケープ文字変換テーブルを参照してください。 |
Computer |
なし | 常に表示されます。 | MachineName プロパティの値。 |
Correlation |
ActivityID |
常に存在する | 指定しない場合、既定値は空の GUID です。 |
RelatedActivityID |
Trace メソッド呼び出しでの relatedActivityId パラメーターの存在によって異なります。 |
TraceTransfer メソッドの relatedActivityId パラメーター。 |
|
DataItem |
なし | メソッドの data パラメーターによって TraceData 異なります。 |
この要素には要素の配列または 1 つの要素を含めることができるため、値は 要素の下TraceData のノードのDataItem セットとして書き込まれます。データ出力では、 ToString 渡されたデータ オブジェクトの メソッドを使用します。 |
EventID |
なし | 常に表示されます。 | パラメーター入力 (id )。 |
Execution |
ProcessName |
常に表示されます。 | から。TraceEventCache |
ProcessID |
常に表示されます。 | から。TraceEventCache | |
ThreadID |
常に表示されます。 | から。TraceEventCache | |
Level |
なし | 常に表示されます。 | パラメーター入力 (の数値 eventType )。 255 より大きいパラメーター値は 255 として出力されます。 |
LogicalOperationStack |
なし | プロパティに フラグが LogicalOperationStack 存在するかどうか TraceOutputOptions によって異なります。 | 複数の論理演算が存在する可能性があるため、値は 要素の下にLogicalOperationStack ノードとしてLogicalOperation 書き込まれます。 |
Message |
なし | Trace メソッド呼び出しにメッセージが存在するかどうかによって異なります。 | 書式設定引数が指定されている場合、この要素は書式設定されたメッセージです。 |
Source |
Name |
常に表示されます。 | パラメーター入力。 |
SubType |
Name |
常に表示されます。 | パラメーター入力。 |
TimeCreated |
SystemTime |
常に表示されます。 | に存在しない場合、 TraceEventCache既定値は現在の時刻です。 |
TimeStamp |
なし | プロパティに フラグが Timestamp 存在するかどうか TraceOutputOptions によって異なります。 | から。TraceEventCache |
Type |
なし | 常に表示されます。 | 値は常に 3 です。 |
次の表は、XML 出力でエスケープされる文字を示しています。 エスケープは、 要素を除くすべての要素と属性で発生します。これは、 メソッドの DataItem
パラメーターTraceDataにdata
渡されたオブジェクトが オブジェクトの場合はXPathNavigatorエスケープされません。 XPathNavigatorがデータ オブジェクトに使用されている場合、 MoveToRoot メソッドが呼び出され、ルート ノード全体がエスケープされていないデータとしてトレースされます。
エスケープ文字 | 値 |
---|---|
& | & |
< | < |
> | > |
" | " |
|' | |
0xD | |
0xA |
コンストラクター
XmlWriterTraceListener(Stream) |
指定されたストリームをデバッグ出力およびトレース出力の受信者として使用して、XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
XmlWriterTraceListener(Stream, String) |
指定されたストリームをデバッグ出力およびトレース出力の受信者として使用して、XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
XmlWriterTraceListener(String) |
指定されたファイルをデバッグ出力およびトレース出力の受信者として使用して、XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
XmlWriterTraceListener(String, String) |
指定されたファイルをデバッグ出力およびトレース出力の受信者として使用して、XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
XmlWriterTraceListener(TextWriter) |
指定されたライターをデバッグ出力およびトレース出力の受信者として使用して、XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
XmlWriterTraceListener(TextWriter, String) |
指定されたライターをデバッグ出力およびトレース出力の受信者として使用して、XmlWriterTraceListener クラスの新しいインスタンスを初期化します。 |
プロパティ
Attributes |
アプリケーション構成ファイルに定義されているトレース リスナーのカスタム属性を取得します。 (継承元 TraceListener) |
Filter |
トレース リスナーのトレース フィルターを取得または設定します。 (継承元 TraceListener) |
IndentLevel |
インデント レベルを取得または設定します。 (継承元 TraceListener) |
IndentSize |
1 つのインデントに含まれるスペースの数を取得または設定します。 (継承元 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) |
TraceListener クラスを実装した場合、作成したリスナーにエラー メッセージを出力します。 (継承元 TraceListener) |
Fail(String, String) |
エラー メッセージおよびエラー メッセージの詳細を含むトレース情報をファイルまたはストリームに書き込みます。 |
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) |
トレース情報およびイベント情報をリスナー固有の出力に書き込みます。 (継承元 TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
トレース情報、メッセージ、およびイベント情報をファイルまたはストリームに書き込みます。 |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
トレース情報、書式設定されたメッセージ、およびイベント情報をファイルまたはストリームに書き込みます。 |
TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
関連するアクティビティの ID を含むトレース情報、メッセージ、およびイベント情報をファイルまたはストリームに書き込みます。 |
Write(Object) |
オブジェクトの ToString() メソッドの値を、TraceListener クラスを実装した時に作成したリスナーに書き込みます。 (継承元 TraceListener) |
Write(Object, String) |
カテゴリ名と、オブジェクトの ToString() メソッドの値を、TraceListener クラスを実装するときに作成したリスナーに書き込みます。 (継承元 TraceListener) |
Write(String) |
逐語的メッセージを追加のコンテキスト情報なしでファイルまたはストリームに書き込みます。 |
Write(String, String) |
TraceListener クラスを実装した時に作成したリスナーにカテゴリ名とメッセージを書き込みます。 (継承元 TraceListener) |
WriteIndent() |
このクラスの実装時に作成したリスナーにインデントを書き込み、NeedIndent プロパティを |
WriteLine(Object) |
TraceListener クラスの実装時に作成したリスナーにオブジェクトの ToString() メソッドの値と行終端記号を書き込みます。 (継承元 TraceListener) |
WriteLine(Object, String) |
TraceListener クラスの実装時に作成したリスナーにカテゴリ名、オブジェクトの ToString() メソッドの値、および行終端記号を書き込みます。 (継承元 TraceListener) |
WriteLine(String) |
逐語的メッセージを追加のコンテキスト情報なしでファイルまたはストリームに書き込み、続けて現在の行終端記号を書き込みます。 |
WriteLine(String, String) |
TraceListener クラスの実装時に作成したリスナーにカテゴリ名、メッセージ、および行終端記号を書き込みます。 (継承元 TraceListener) |
適用対象
.NET