次の方法で共有


Trace クラス

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

この型のすべてのメンバの一覧については、Trace メンバ を参照してください。

System.Object
   System.Diagnostics.Trace

NotInheritable Public Class Trace
[C#]
public sealed class Trace
[C++]
public __gc __sealed class Trace
[JScript]
public class Trace

スレッドセーフ

この型は、マルチスレッド操作に対して安全です。

解説

Trace クラスのプロパティやメソッドを使用して、リリース ビルドを導入できます。導入により、実際の設定で実行されるアプリケーションの状態を監視できます。トレースを行うと、実行中のシステムを中断せずに問題を特定し、修復できます。

メモ   C# でデバッグを有効にするには、コードのコンパイル時に /d:TRACE フラグをコンパイラのコマンド ラインに追加するか、 #define TRACE をファイルの最上部に挿入します。Visual Basic では、コンパイラのコマンド ラインに /d:TRACE=True フラグを追加します。C++ のマネージ拡張で等価な機能を使用するには、このクラスのメソッド呼び出しを #ifdef TRACE ... #endif ブロックで囲む必要があります。この構文はコンパイラ固有です。 Trace クラスのメソッドには条件付きコンパイル属性があるため、上記以外のコンパイラを使用する場合は、使用するコンパイラのドキュメントを参照して条件付きコンパイルを有効にする必要があります。

Visual Studio .NET プロジェクトでは、既定では Trace が有効です。したがって、リリース ビルドとデバッグ ビルドの両方ですべての Trace メソッドのコードが生成されます。これにより、エンド ユーザーはプログラムを再コンパイルせずに問題を特定できるトレースを有効にできます。対照的に、既定では、 Debug がリリース ビルドでは無効になるため、 Debug メソッドの実行可能コードは生成されません。 Trace を無効にするには、Visual Studio .NET ドキュメントを参照してください。

このクラスは Assert ダイアログ ボックスを表示するメソッドを提供し、常に Fail になるアサーションを出力するメソッドを提供します。このクラスは次の種類の書き込みメソッドを提供します。 WriteWriteLineWriteIf 、および WriteLineIf

BooleanSwitch クラスおよび TraceSwitch クラスは、トレース出力を動的に制御する手段を提供します。これらのスイッチの値はアプリケーションを再コンパイルせずに変更できます。構成ファイルを使用してスイッチを設定する方法については、Visual Studio .NET ドキュメントの Switch クラスおよび TraceSwitch の設定に関するのトピックを参照してください。

Listeners コレクションに TraceListener インスタンスを追加したり、コレクションからインスタンスを削除したりすることによって、トレース出力対象をカスタマイズできます。既定では、トレース出力は DefaultTraceListener クラスを使用すると出力されます。

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

TraceAutoFlushIndentSize を設定するために、アプリケーション名に対応する構成ファイルを編集することもできます。構成ファイルの書式は次の例のようになります。

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

使用例

Trace を使用してプログラム実行の最初と最後を指定する例を次に示します。また、この例では IndentUnindent を使用してトレース出力を識別します。

 
Public 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 'Main


[C#] 
public static int Main(string[] args)
{
   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();
   return 0;
}


[C++] 
int main() {
   Trace::Listeners->Add(new TextWriterTraceListener(Console::Out));
   Trace::AutoFlush = true;
   Trace::Indent();
   Trace::WriteLine(S"Entering Main");
   Console::WriteLine(S"Hello World.");
   Trace::WriteLine(S"Exiting Main");
   Trace::Unindent();
   return 0;
}

[JScript] 
import System
import System.Diagnostics

Trace.Listeners.Add(new TextWriterTraceListener(Console.Out))
Trace.AutoFlush = true
Trace.Indent()
Trace.WriteLine("Start program")
Console.WriteLine("Hello World.")
Trace.WriteLine("End program")
Trace.Unindent()

必要条件

名前空間: System.Diagnostics

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System (System.dll 内)

参照

Trace メンバ | System.Diagnostics 名前空間 | Debug | Switch | BooleanSwitch | TraceSwitch | TraceListener | DefaultTraceListener | EventLogTraceListener | TraceListenerCollection | ConditionalAttribute