TraceSwitch クラス

定義

コードの再コンパイルなしでトレース出力およびデバッグ出力を制御するための複数レベルのスイッチを提供します。

public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
    inherit Switch
Public Class TraceSwitch
Inherits Switch
継承
TraceSwitch

次のコード例では、新しい を作成し、 スイッチを使用してエラー メッセージ TraceSwitch を出力するかどうかを決定します。 スイッチはクラス レベルで作成されます。 MyMethod は、 プロパティが 以上に設定されている場合 Level 、最初のエラー メッセージ TraceLevel.Error を書き込みます。 ただし、 が より小さい場合、 は 2 番目 MyMethodLevel エラー メッセージを書き込むわけではありません TraceLevel.Verbose

   // Class-level declaration.
   /* Create a TraceSwitch to use in the entire application.*/
private:
   static TraceSwitch^ mySwitch = gcnew TraceSwitch( "General", "Entire Application" );

public:
   static 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." );
   }

   static void main()
   {
      // Run the method that prints error messages based on the switch level.
      MyMethod();
   }
//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();
 }
' 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

注釈

トレース スイッチを使用して、重要度に基づいてメッセージをフィルター処理できます。 クラス TraceSwitch は、スイッチ TraceError のレベル TraceWarningTraceInfo テストする TraceVerbose 、および の各プロパティを提供します。 プロパティ Level は、スイッチの を取得または設定します TraceLevel

アプリケーション構成ファイルを使用して のレベルを設定し、 TraceSwitch アプリケーションで構成された TraceSwitch レベルを使用できます。 または、コードで を作成し、レベルを直接設定して、コードの特定のセクション TraceSwitch をインストルメント化することもできます。

を構成するには TraceSwitch 、アプリケーションの構成ファイルを編集します。 このファイルでは、スイッチの追加または削除、スイッチの値の設定、またはアプリケーションによって以前に設定されたスイッチのクリアを行えます。 構成ファイルは、次の例のように書式設定する必要があります。

<configuration>  
  <system.diagnostics>  
    <switches>  
      <add name="mySwitch" value="1" />  
    </switches>  
  </system.diagnostics>  
</configuration>  

この構成セクションでは、 を に設定し、 を 1 に設定して、列挙値 に TraceSwitch DisplayName mySwitch Level 対応する を定義します TraceLevel.Error

注意

.NET Framework バージョン 2.0 では、スイッチの値を指定するためにテキストを使用できます。 たとえば、 true の 場合 BooleanSwitch や、 などの列挙値を表す Error テキストの場合は TraceSwitch です。 <add name="mySwitch" value="Error" /> という行は、<add name="mySwitch" value="1" /> と同じです。

アプリケーションでは、次の例に示すように、同じ名前の を作成することで、構成された TraceSwitch スイッチ レベルを使用できます。

private:
    static TraceSwitch^ appSwitch = gcnew TraceSwitch("mySwitch",
        "Switch in config file");

public:
    static void Main(array<String^>^ args)
    {
        //...
        Console::WriteLine("Trace switch {0} configured as {1}",
        appSwitch->DisplayName, appSwitch->Level.ToString());
        if (appSwitch->TraceError)
        {
            //...
        }
    }
private static TraceSwitch appSwitch = new TraceSwitch("mySwitch",
    "Switch in config file");

public static void Main(string[] args)
{
    //...
    Console.WriteLine("Trace switch {0} configured as {1}",
    appSwitch.DisplayName, appSwitch.Level.ToString());
    if (appSwitch.TraceError)
    {
        //...
    }
}
Private Shared appSwitch As new TraceSwitch("mySwitch", _
    "Switch in config file")

Public Shared Sub Main(args As String())
    '...
    Console.WriteLine("Trace switch {0} configured as {1}",
    appSwitch.DisplayName, appSwitch.Level.ToString())
    If appSwitch.TraceError = True  Then
        '...
    End If
End Sub

既定では、構成ファイルで Level 指定された値を使用して switch プロパティが設定されます。 コンストラクターが TraceSwitch 構成ファイル内の初期スイッチ設定を見つからない場合、新しいスイッチの Level は既定で になります TraceLevel.Off

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

  • C# でデバッグを有効にするには、コードをコンパイルするときにコンパイラコマンド ラインに フラグを追加するか、ファイルの一番上 /d:DEBUG #define DEBUG に を追加します。 このVisual Basic、コンパイラの /d:DEBUG=True コマンド ラインに フラグを追加します。

  • C# でトレースを有効にするには、コードをコンパイルするときにコンパイラコマンド ラインに フラグを追加するか、ファイルの一番上 /d:TRACE #define TRACE に を追加します。 このVisual Basic、コンパイラの /d:TRACE=True コマンド ラインに フラグを追加します。

注意

クラスを分離して使用する場合、これらのデバッグ およびトレース コンパイラ TraceSwitch スイッチは必要ありません。 これらは、条件付きでコンパイルされる メソッドまたは Trace メソッド Debug と組み合わせてのみ必要です。

アプリケーションのインストルメント化の詳細については、 および を参照 Debug してください Trace 。 トレース スイッチの構成と使用の詳細については、「トレース スイッチ」を 参照してください

注意

パフォーマンスを向上させるために、クラス TraceSwitch のメンバー static を作成できます。

コンストラクター

TraceSwitch(String, String)

表示名と説明を指定して、TraceSwitch クラスの新しいインスタンスを初期化します。

TraceSwitch(String, String, String)

スイッチの表示名、説明、および既定値を指定して、TraceSwitch クラスの新しいインスタンスを初期化します。

プロパティ

Attributes

アプリケーション構成ファイルに定義されているカスタム スイッチ属性を取得します。

(継承元 Switch)
Description

スイッチの説明を取得します。

(継承元 Switch)
DisplayName

スイッチを識別するための名前を取得します。

(継承元 Switch)
Level

スイッチが許可するメッセージを決定するトレース レベルを取得または設定します。

SwitchSetting

このスイッチの現在の設定を取得または設定します。

(継承元 Switch)
TraceError

スイッチがエラー処理メッセージを許可するかどうかを示す値を取得します。

TraceInfo

スイッチが情報メッセージを許可するかどうかを示す値を取得します。

TraceVerbose

スイッチがすべてのメッセージを許可するかどうかを示す値を取得します。

TraceWarning

スイッチが警告メッセージを許可するかどうかを示す値を取得します。

Value

スイッチの値を取得または設定します。

(継承元 Switch)

メソッド

Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetSupportedAttributes()

スイッチによってサポートされるカスタム属性を取得します。

(継承元 Switch)
GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
OnSwitchSettingChanged()

このスイッチのレベルを更新して修正します。

OnValueChanged()

SwitchSetting プロパティを Value プロパティと等価の整数に設定します。

OnValueChanged()

Value プロパティが変更されると発生します。

(継承元 Switch)
ToString()

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

(継承元 Object)

適用対象

こちらもご覧ください