次の方法で共有


XmlWriterTraceListener クラス

定義

トレース出力またはデバッグ出力を 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>  

クラスは XmlWriterTraceListenerFilter 基底クラス から プロパティを継承します 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 パラメーターTraceDatadata渡されたオブジェクトが オブジェクトの場合は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 プロパティを false にリセットします。

(継承元 TraceListener)
WriteLine(Object)

TraceListener クラスの実装時に作成したリスナーにオブジェクトの ToString() メソッドの値と行終端記号を書き込みます。

(継承元 TraceListener)
WriteLine(Object, String)

TraceListener クラスの実装時に作成したリスナーにカテゴリ名、オブジェクトの ToString() メソッドの値、および行終端記号を書き込みます。

(継承元 TraceListener)
WriteLine(String)

逐語的メッセージを追加のコンテキスト情報なしでファイルまたはストリームに書き込み、続けて現在の行終端記号を書き込みます。

WriteLine(String, String)

TraceListener クラスの実装時に作成したリスナーにカテゴリ名、メッセージ、および行終端記号を書き込みます。

(継承元 TraceListener)

適用対象