Trace クラス

定義

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

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

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

// 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アサーションを出力するメソッドを提供します。 このクラスは、次のバリエーションの書き込みメソッドを提供します。

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

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

Note

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

Note

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

Trace クラスには、IndentIndentSizeのレベルを取得または設定するプロパティと、書き込み後にAutoFlushするかどうかを指定するプロパティが用意されています。

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

<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

書き込みのたびにFlush()Listeners呼び出す必要があるかどうかを取得または設定します。

CorrelationManager

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

IndentLevel

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

IndentSize

インデント内のスペースの数を取得または設定します。

Listeners

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

UseGlobalLock

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

メソッド

名前 説明
Assert(Boolean, String, String)

条件を確認します。条件が false場合は、指定された 2 つのメッセージを出力し、呼び出し履歴を示すメッセージ ボックスを表示します。

Assert(Boolean, String)

条件を確認します。条件が falseの場合は、指定したメッセージを出力し、呼び出し履歴を示すメッセージ ボックスを表示します。

Assert(Boolean)

条件を確認します。条件が falseの場合は、呼び出し履歴を示すメッセージ ボックスが表示されます。

Close()

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

Equals(Object)

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

(継承元 Object)
Fail(String, String)

エラー メッセージと詳細なエラー メッセージを出力します。

Fail(String)

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

Flush()

出力バッファーをフラッシュし、バッファー内のデータを Listenersに書き込みます。

GetHashCode()

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

(継承元 Object)
GetType()

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

(継承元 Object)
Indent()

現在の IndentLevel を 1 ずつ増やします。

MemberwiseClone()

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

(継承元 Object)
Refresh()

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

ToString()

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

(継承元 Object)
TraceError(String, Object[])

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

TraceError(String)

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

TraceInformation(String, Object[])

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

TraceInformation(String)

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

TraceWarning(String, Object[])

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

TraceWarning(String)

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

Unindent()

現在の IndentLevel を 1 ずつ減らします。

Write(Object, String)

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

Write(Object)

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

Write(String, String)

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

Write(String)

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

WriteIf(Boolean, Object, String)

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

WriteIf(Boolean, Object)

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

WriteIf(Boolean, String, String)

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

WriteIf(Boolean, String)

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

WriteLine(Object, String)

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

WriteLine(Object)

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

WriteLine(String, String)

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

WriteLine(String)

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

WriteLineIf(Boolean, Object, String)

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

WriteLineIf(Boolean, Object)

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

WriteLineIf(Boolean, String, String)

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

WriteLineIf(Boolean, String)

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

イベント

名前 説明
Refreshing

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

適用対象

スレッド セーフ

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

こちらもご覧ください