Trace クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コードの実行をトレースするための一連のメソッドとプロパティを提供します。 このクラスは継承できません。
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 クラスには、IndentとIndentSizeのレベルを取得または設定するプロパティと、書き込み後にAutoFlushするかどうかを指定するプロパティが用意されています。
.NET Framework アプリでは、アプリケーションの名前に対応する構成ファイルを編集することで、AutoFlush の IndentSize と Traceを設定できます。 構成ファイルは、次の例のように書式設定する必要があります。
<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 | |
| CorrelationManager |
このトレースのスレッドの関連付けマネージャーを取得します。 |
| IndentLevel |
インデント レベルを取得または設定します。 |
| IndentSize |
インデント内のスペースの数を取得または設定します。 |
| Listeners |
トレース出力を監視しているリスナーのコレクションを取得します。 |
| UseGlobalLock |
グローバル ロックを使用するかどうかを示す値を取得または設定します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Assert(Boolean, String, String) |
条件を確認します。条件が |
| Assert(Boolean, String) |
条件を確認します。条件が |
| Assert(Boolean) |
条件を確認します。条件が |
| 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 コレクション内のトレース リスナーに、カテゴリ名とオブジェクトの |
| WriteIf(Boolean, Object) |
条件がToString()場合、オブジェクトのListeners メソッドの値を |
| WriteIf(Boolean, String, String) |
条件がListeners場合、カテゴリ名とメッセージを |
| WriteIf(Boolean, String) |
条件がListenersされている場合は、 |
| WriteLine(Object, String) |
ToString() コレクション内のトレース リスナーに、カテゴリ名とオブジェクトのListeners メソッドの値を書き込みます。 |
| WriteLine(Object) |
オブジェクトの ToString() メソッドの値を、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| WriteLine(String, String) |
カテゴリ名とメッセージを、 Listeners コレクション内のトレース リスナーに書き込みます。 |
| WriteLine(String) |
Listeners コレクション内のトレース リスナーにメッセージを書き込みます。 |
| WriteLineIf(Boolean, Object, String) |
条件がToString()場合は、Listeners コレクション内のトレース リスナーに、カテゴリ名とオブジェクトの |
| WriteLineIf(Boolean, Object) |
条件がToString()場合、オブジェクトのListeners メソッドの値を |
| WriteLineIf(Boolean, String, String) |
条件がListeners場合、カテゴリ名とメッセージを |
| WriteLineIf(Boolean, String) |
条件がListenersされている場合は、 |
イベント
| 名前 | 説明 |
|---|---|
| Refreshing |
構成から TraceSource を更新する必要がある場合に発生します。 |
適用対象
スレッド セーフ
この型はスレッド セーフです。