Trace クラス

定義

コードの実行をトレースするための一連のメソッドとプロパティを提供します。 このクラスは継承できません。

public ref class Trace sealed
public sealed class Trace
type Trace = class
Public NotInheritable Class Trace
継承
Trace

次の例では、 を使用 Trace して、プログラムの実行の開始と終了を示します。 この例では、 メソッドと Trace.Unindent メソッドを使用Trace.Indentしてトレース出力を区別します。 の使用 Trace例の詳細については、「 方法: アプリケーション コードにトレース ステートメントを追加する」を参照してください。

// Specify /DTRACE when compiling.

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;

int main()
{
   #if defined(TRACE)
   Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
   Trace::AutoFlush = true;
   Trace::Indent();
   Trace::WriteLine( "Entering Main" );
   #endif
   Console::WriteLine( "Hello World." );
   #if defined(TRACE)
   Trace::WriteLine( "Exiting Main" );
   Trace::Unindent();
   #endif
   return 0;
}
// Specify /d:TRACE when compiling.

using System;
using System.Diagnostics;

class Test
{
    static void Main()
    {
       Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
       Trace.AutoFlush = true;
       Trace.Indent();
       Trace.WriteLine("Entering Main");
       Console.WriteLine("Hello World.");
       Trace.WriteLine("Exiting Main");
       Trace.Unindent();
    }
}
' Specify /d:TRACE=True when compiling.

Imports System.Diagnostics

Class Test
    
    Shared Sub Main()
    
        Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
        Trace.AutoFlush = True
        Trace.Indent()
        Trace.WriteLine("Entering Main")
        Console.WriteLine("Hello World.")
        Trace.WriteLine("Exiting Main")
        Trace.Unindent()
        
    End Sub

End Class

注釈

クラスのプロパティとメソッドを使用して、 Trace リリース ビルドをインストルメント化できます。 インストルメンテーションを使用すると、実際の設定で実行されているアプリケーションの正常性を監視できます。 トレースを使用すると、実行中のシステムを妨げることなく、問題を分離して修正できます。

このクラスは、ダイアログ ボックスを Assert 表示し、常 Failに を行うアサーションを出力するメソッドを提供します。 このクラスは、次のバリエーションの書き込みメソッドを提供します。

クラスと TraceSwitch クラスはBooleanSwitch、トレース出力を動的に制御する手段を提供します。 .NET Framework アプリでは、アプリケーションを再コンパイルすることなく、これらのスイッチの値を変更できます。 構成ファイルを使用して.NET Framework アプリでスイッチを設定する方法については、クラスと「方法: トレース スイッチを作成、初期化、および構成する」を参照してくださいSwitch

インスタンスをコレクションに追加 TraceListener するか、コレクションからインスタンスを削除することで、トレース出力のターゲットを Listeners カスタマイズできます。 コレクションはListeners、 クラスと クラスのTrace両方Debugで共有されます。いずれかのクラスにトレース リスナーを追加すると、リスナーが両方に追加されます。 既定では、 クラスを使用して DefaultTraceListener トレース出力が出力されます。

Note

Listeners コレクションにトレース リスナーを追加することで、トレース リスナーによって使用されるリソースが利用できない場合、トレース中に例外を発生させることになります。 条件とスローされる例外は、トレース リスナーに依存し、このトピックで列挙することはできません。 トレース リスナーから例外を検出し、処理するために、Trace メソッドの呼び出しをtry/catchブロックに配置することができます。

Note

部分的に信頼されたコードにトレース リスナーを追加すると、トレース リスナーを SecurityException 追加するにはアクセス許可が必要 UnmanagedCode であるため、例外が発生します。 Visual Studio のサンドボックスで実行されている部分的に信頼されたコードをトレースするには、トレース リスナーを追加しないでください。 代わりに、[出力]Trace ウィンドウで メッセージと Debug メッセージを表示します。

クラスは Trace 、 および の Indent レベルを取得または設定するためのプロパティと、 IndentSize各書き込みの後に を に AutoFlush するかどうかを提供します。

.NET Framework アプリでは、アプリケーションの名前にAutoFlush対応する構成ファイルを編集することで、 と IndentSizeTrace を設定できます。 構成ファイルは、次の例のように書式設定する必要があります。

<configuration>  
  <system.diagnostics>  
    <trace autoflush="false" indentsize="3" />  
  </system.diagnostics>  
</configuration>  

属性は ConditionalAttribute 、 の メソッド Traceに適用されます。 をサポート ConditionalAttribute するコンパイラは、条件付きコンパイル シンボルとして定義されていない限り TRACE 、これらのメソッドの呼び出しを無視します。 がサポートされているかどうかを ConditionalAttribute 判断するには、コンパイラのドキュメントと、条件付きコンパイル シンボルを定義するための構文を参照してください。

Note

Visual Studio プロジェクトでは、既定では、 DEBUG 条件付きコンパイル シンボルはデバッグ ビルド用に定義され TRACE 、シンボルはデバッグ ビルドとリリース ビルドの両方に対して定義されます。

C# で条件付きコンパイル シンボルを TRACE 定義するには、コマンド ラインを /d:TRACE 使用してコードをコンパイルするときにコンパイラ コマンド ラインに オプションを追加するか、ファイルの先頭に を追加 #define TRACE します。 Visual Basic で、コンパイラ コマンド /d:TRACE=True ラインに オプションを追加するか、ファイルに を追加 #Const TRACE=True します。

ConditionalAttribute は C++ コンパイラではサポートされていません。 同等の機能を提供するには、 のメソッド Trace の呼び出しを ブロックで #if defined(TRACE) ... #endif 囲み、 オプションを /DTRACE コンパイラ コマンド ラインに追加するか、ファイルに 追加 #define TRACE する必要があります。

プロパティ

AutoFlush

すべての書き込み後に ListenersFlush() を呼び出すかどうかを取得または設定します。

CorrelationManager

このトレースのスレッドの相関マネージャーを取得します。

IndentLevel

インデント レベルを取得または設定します。

IndentSize

1 つのインデントに含まれるスペースの数を取得または設定します。

Listeners

トレース出力を監視しているリスナーのコレクションを取得します。

UseGlobalLock

グローバル ロックを使用するかどうかを示す値を取得または設定します。

メソッド

Assert(Boolean)

条件をチェックします。条件が false の場合、呼び出し履歴を見せるメッセージ ボックスを表示します。

Assert(Boolean, String)

条件をチェックします。条件が false の場合、指定したメッセージを出力し、コール スタックを示すメッセージ ボックスを表示します。

Assert(Boolean, String, String)

条件をチェックします。条件が false の場合、指定した 2 つのメッセージを出力し、コール スタックを示すメッセージ ボックスを表示します。

Close()

出力バッファーをフラッシュし、Listeners を閉じます。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Fail(String)

指定されたエラー メッセージを出力します。

Fail(String, String)

エラー メッセージ、および詳細なエラー メッセージを出力します。

Flush()

出力バッファーをフラッシュします。また、バッファー内のデータが Listeners に書き込まれるようにします。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
Indent()

現在の IndentLevel を 1 だけ大きくします。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Refresh()

トレース構成データを更新します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
TraceError(String)

指定されたメッセージを使用して、エラー メッセージを Listeners コレクションのトレース リスナーに書き込みます。

TraceError(String, Object[])

指定されたオブジェクトの配列および書式設定情報を使用して、Listeners コレクションのトレース リスナーにエラー メッセージを書き込みます。

TraceInformation(String)

指定されたメッセージを使用して、情報メッセージを Listeners コレクションのトレース リスナーに書き込みます。

TraceInformation(String, Object[])

指定されたオブジェクトの配列および書式設定情報を使用して、Listeners コレクションのトレース リスナーに情報メッセージを書き込みます。

TraceWarning(String)

指定されたメッセージを使用して、警告メッセージを Listeners コレクションのトレース リスナーに書き込みます。

TraceWarning(String, Object[])

指定されたオブジェクトの配列および書式設定情報を使用して、Listeners コレクションのトレース リスナーに警告メッセージを書き込みます。

Unindent()

現在の IndentLevel を 1 だけ減らします。

Write(Object)

オブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

Write(Object, String)

カテゴリ名とオブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

Write(String)

Listeners コレクションのトレース リスナーにメッセージを書き込みます。

Write(String, String)

カテゴリ名とメッセージを Listeners コレクションのトレース リスナーに書き込みます。

WriteIf(Boolean, Object)

条件が true の場合、オブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

WriteIf(Boolean, Object, String)

条件が true の場合は、カテゴリ名とオブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

WriteIf(Boolean, String)

条件が true である場合、メッセージを Listeners コレクションのトレース リスナーに書き込みます。

WriteIf(Boolean, String, String)

条件が true である場合、カテゴリ名とメッセージを Listeners コレクションのトレース リスナーに書き込みます。

WriteLine(Object)

オブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

WriteLine(Object, String)

カテゴリ名とオブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

WriteLine(String)

Listeners コレクションのトレース リスナーにメッセージを書き込みます。

WriteLine(String, String)

カテゴリ名とメッセージを Listeners コレクションのトレース リスナーに書き込みます。

WriteLineIf(Boolean, Object)

条件が true の場合、オブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

WriteLineIf(Boolean, Object, String)

条件が true の場合は、カテゴリ名とオブジェクトの ToString() メソッドの値を Listeners コレクションのトレース リスナーに書き込みます。

WriteLineIf(Boolean, String)

条件が true である場合、メッセージを Listeners コレクションのトレース リスナーに書き込みます。

WriteLineIf(Boolean, String, String)

条件が true である場合、カテゴリ名とメッセージを Listeners コレクションのトレース リスナーに書き込みます。

イベント

Refreshing

構成から を TraceSource 更新する必要がある場合に発生します。

適用対象

スレッド セーフ

この型はスレッド セーフです。

こちらもご覧ください