TraceSwitch クラス

コードを再コンパイルせずに、トレースやデバッグの出力を制御する複数レベルのスイッチを提供します。

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

System.Object
   System.Diagnostics.Switch
      System.Diagnostics.TraceSwitch

Public Class TraceSwitch
   Inherits Switch
[C#]
public class TraceSwitch : Switch
[C++]
public __gc class TraceSwitch : public Switch
[JScript]
public class TraceSwitch extends Switch

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

トレース レベルを使用すると、メッセージの重要度に基づいてメッセージのフィルタ処理を行うことができます。

TraceSwitch のレベルを設定するには、アプリケーション名に対応する構成ファイルを編集します。このファイルでは、スイッチの追加、その値の設定、スイッチの削除、アプリケーションで以前設定されたすべてのスイッチのクリアを実行できます。構成ファイルの書式は次の例のようになります。

<configuration>
    <system.diagnostics>
       <switches>
          <add name="mySwitch" value="0" />
          <add name="myNewSwitch" value="3" />
          <remove name="mySwitch" />
          <clear/>
       </switches>
    </system.diagnostics>
</configuration>

TraceSwitch コンストラクタが、構成ファイルの初期スイッチ設定を検出できない場合は、新しいスイッチの LevelTraceLevel.Off に設定されます。

TraceSwitch クラスには、スイッチのレベルをテストするための代替手段として、 TraceErrorTraceWarningTraceInfoTraceVerbose の各プロパティが用意されています。 Level プロパティは、スイッチの TraceLevel を取得または設定します。

スイッチを使用するには、トレースまたはデバッグを有効にする必要があります。次の構文はコンパイラに固有です。C# または Visual Basic 以外のコンパイラを使用する場合は、使用するコンパイラのドキュメントを参照してください。

  • C# でデバッグを有効にするには、コードのコンパイル時に /d:DEBUG フラグをコンパイラのコマンド ラインに追加するか、 #define DEBUG をファイルの最上部に挿入します。Visual Basic では、コンパイラのコマンド ラインに /d:DEBUG=True フラグを追加します。
  • C# でトレースを有効にするには、コードのコンパイル時に /d:TRACE フラグをコンパイラのコマンド ラインに追加するか、 #define TRACE をファイルの最上部に挿入します。Visual Basic では、コンパイラのコマンド ラインに /d:TRACE=True フラグを追加します。

アプリケーション導入の詳細については、 Debug および Trace のトピックを参照してください。

メモ   パフォーマンス向上のため、クラスで TraceSwitch メンバを静的 (Visual Basic では Shared) にできます。

使用例

[Visual Basic, C#, C++] 新しい TraceSwitch を作成し、スイッチを使用してエラー メッセージを出力するかどうかを決定する例を次に示します。スイッチはクラス レベルで作成されます。 MyMethod は、 LevelTraceError 以上に設定されている場合に最初のエラー メッセージを書き込みます。しかし、 MyMethod は、 LevelTraceVerbose 未満の場合は第 2 のエラー メッセージを書き込みません。

 
' Class-level declaration.
' Create a TraceSwitch to use in the entire application. 
Private Shared mySwitch As New TraceSwitch("General", "Entire Application")    

Public Shared Sub MyMethod()
    ' Write the message if the TraceSwitch level is set to Error or higher.
    If mySwitch.TraceError Then
        Console.WriteLine("My error message.")
    End If 
    ' Write the message if the TraceSwitch level is set to Verbose.
    If mySwitch.TraceVerbose Then
        Console.WriteLine("My second error message.")
    End If
End Sub

Public Shared Sub Main()
    ' Run the method that prints error messages based on the switch level.
    MyMethod()
End Sub


[C#] 
//Class-level declaration.
 /* Create a TraceSwitch to use in the entire application.*/
 static TraceSwitch mySwitch = new TraceSwitch("General", "Entire Application");
 
 static public void MyMethod() {
    // Write the message if the TraceSwitch level is set to Error or higher.
    if(mySwitch.TraceError)
       Console.WriteLine("My error message.");
 
    // Write the message if the TraceSwitch level is set to Verbose.
    if(mySwitch.TraceVerbose)
       Console.WriteLine("My second error message.");
 }
 
 public static void Main(string[] args) {
    // Run the method that prints error messages based on the switch level.
    MyMethod();
 }
 

[C++] 
//Class-level declaration.
 /* Create a TraceSwitch to use in the entire application.*/
 static TraceSwitch* mySwitch = new TraceSwitch(S"General", S"Entire Application");
 
public:
 static void MyMethod() {
    // Write the message if the TraceSwitch level is set to Error or higher.
    if(mySwitch->TraceError)
       Console::WriteLine(S"My error message.");
 
    // Write the message if the TraceSwitch level is set to Verbose.
    if(mySwitch->TraceVerbose)
       Console::WriteLine(S"My second error message.");
 }
 
 static void main() {
    // Run the method that prints error messages based on the switch level.
    MyMethod();
 }
 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Diagnostics

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

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

参照

TraceSwitch メンバ | System.Diagnostics 名前空間 | Switch | BooleanSwitch | TraceLevel | Debug | Trace