TraceSwitch TraceSwitch TraceSwitch TraceSwitch Class

定義

コードの再コンパイルなしでトレース出力およびデバッグ出力を制御するための複数レベルのスイッチを提供します。Provides a multilevel switch to control tracing and debug output without recompiling your code.

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

次のコード例では、 TraceSwitch新しいを作成し、スイッチを使用してエラーメッセージを出力するかどうかを判断します。The following code example creates a new TraceSwitch and uses the switch to determine whether to print error messages. スイッチはクラスレベルで作成されます。The switch is created at the class level. MyMethodプロパティが以上にLevel TraceLevel.Error設定されている場合、最初のエラーメッセージを書き込みます。MyMethod writes the first error message if the Level property is set to TraceLevel.Error or higher. ただし、 MyMethod LevelがよりTraceLevel.Verbose小さい場合、では2番目のエラーメッセージは書き込まれません。However, MyMethod does not write the second error message if the Level is less than 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

注釈

トレーススイッチを使用すると、メッセージの重要度に基づいてメッセージをフィルターで除外できます。You can use a trace switch to filter out messages based on their importance. クラスTraceSwitch TraceErrorは、スイッチのレベルTraceInfoをテストTraceVerboseするための、 TraceWarning、、およびの各プロパティを提供します。The TraceSwitch class provides the TraceError, TraceWarning, TraceInfo, and TraceVerbose properties to test the level of the switch. プロパティLevelは、スイッチのTraceLevelを取得または設定します。The Level property gets or sets the switch's TraceLevel.

アプリケーション構成ファイルを使用してTraceSwitchのレベルを設定し、アプリケーションで構成さTraceSwitchれたレベルを使用することができます。You can set the level of a TraceSwitch through the application configuration file and then use the configured TraceSwitch level in your application. または、コード内にTraceSwitchを作成し、コードの特定のセクションをインストルメント化するためにレベルを直接設定することもできます。Alternately, you can create a TraceSwitch in your code and set the level directly to instrument a specific section of code.

を構成TraceSwitchするには、アプリケーションの構成ファイルを編集します。To configure a TraceSwitch, edit the configuration file for your application. このファイルでは、スイッチを追加または削除したり、スイッチの値を設定したり、アプリケーションによって以前に設定されたすべてのスイッチをクリアしたりできます。In this file, you can add or remove a switch, set a switch's value, or clear all the switches previously set by the application. 構成ファイルは、次の例のように書式設定する必要があります。The configuration file should be formatted like the following example:

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

この構成セクションではTraceSwitch 、をDisplayNamemySwitch Level設定し、を1に設定して、列挙値TraceLevel.Errorに対応するを定義します。This configuration section defines a TraceSwitch with the DisplayName set to mySwitch, and the Level set to 1, which corresponds to the enumeration value TraceLevel.Error.

注意

.NET Framework バージョン 2.0 では、スイッチの値を指定するためにテキストを使用できます。In the .NET Framework version 2.0, you can use text to specify the value for a switch. たとえば、 BooleanSwitchまたはのようError TraceSwitchな列挙値を表すテキストの場合です。trueFor example, true for a BooleanSwitch or the text representing an enumeration value, such as Error for a TraceSwitch. <add name="mySwitch" value="Error" /> という行は、<add name="mySwitch" value="1" /> と同じです。The line <add name="mySwitch" value="Error" /> is equivalent to <add name="mySwitch" value="1" />.

アプリケーションでは、次の例に示すように、同じ名前TraceSwitchのを作成することによって、構成されたスイッチレベルを使用できます。In your application, you can use the configured switch level by creating a TraceSwitch with the same name, as shown in the following example:

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プロパティは、構成ファイルで指定された値を使用して設定されます。By default, the switch Level property is set using the value specified in the configuration file. コンストラクターがTraceSwitch構成ファイルで初期スイッチ設定を見つけられない場合Level 、新しいスイッチのは既定TraceLevel.Offでになります。If the TraceSwitch constructor cannot find initial switch settings in the configuration file, the Level of the new switch defaults to TraceLevel.Off.

スイッチを使用するには、トレースまたはデバッグを有効にする必要があります。You must enable tracing or debugging to use a switch. 次の構文はコンパイラ固有です。The following syntax is compiler specific. または Visual Basic 以外C#のコンパイラを使用する場合は、コンパイラのドキュメントを参照してください。If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • でC#デバッグを有効にするに/d:DEBUGは、コードをコンパイルするときにコンパイラのコマンドラインにフラグ#define DEBUGを追加するか、ファイルの先頭にを追加します。To enable debugging in C#, add the /d:DEBUG flag to the compiler command line when you compile your code, or add #define DEBUG to the top of your file. Visual Basic で、コンパイラの/d:DEBUG=Trueコマンドラインにフラグを追加します。In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • でC#トレースを有効にするに/d:TRACEは、コードをコンパイルするときにコンパイラのコマンドラインにフラグ#define TRACEを追加するか、ファイルの先頭にを追加します。To enable tracing in C#, add the /d:TRACE flag to the compiler command line when you compile your code, or add #define TRACE to the top of your file. Visual Basic で、コンパイラの/d:TRACE=Trueコマンドラインにフラグを追加します。In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

注意

分離されたでクラスを使用する場合、 TraceSwitchこれらのデバッグおよびトレースコンパイラスイッチは必要ありません。These debug and trace compiler switches are not required when using the TraceSwitch class in isolation. これらのメソッドは、条件付きTraceDebugコンパイルされたメソッドまたはメソッドと組み合わせて使用する必要があります。They are only required in conjunction with Trace or Debug methods that are conditionally compiled.

アプリケーションのインストルメント化の詳細についてDebugTrace、「」および「」を参照してください。For more information on instrumenting your application, see Debug and Trace. トレーススイッチの構成と使用の詳細については、「トレーススイッチ」を参照してください。For more information about configuring and using trace switches, see Trace Switches.

注意

パフォーマンスを向上させるにはTraceSwitchstaticクラスのメンバーを作成します。To improve performance, you can make TraceSwitch members static in your class.

コンストラクター

TraceSwitch(String, String) TraceSwitch(String, String) TraceSwitch(String, String) TraceSwitch(String, String)

表示名と説明を指定して、TraceSwitch クラスの新しいインスタンスを初期化します。Initializes a new instance of the TraceSwitch class, using the specified display name and description.

TraceSwitch(String, String, String) TraceSwitch(String, String, String) TraceSwitch(String, String, String) TraceSwitch(String, String, String)

スイッチの表示名、説明、および既定値を指定して、TraceSwitch クラスの新しいインスタンスを初期化します。Initializes a new instance of the TraceSwitch class, using the specified display name, description, and default value for the switch.

プロパティ

Attributes Attributes Attributes Attributes

アプリケーション構成ファイルに定義されているカスタム スイッチ属性を取得します。Gets the custom switch attributes defined in the application configuration file.

(Inherited from Switch)
Description Description Description Description

スイッチの説明を取得します。Gets a description of the switch.

(Inherited from Switch)
DisplayName DisplayName DisplayName DisplayName

スイッチを識別するための名前を取得します。Gets a name used to identify the switch.

(Inherited from Switch)
Level Level Level Level

スイッチが許可するメッセージを決定するトレース レベルを取得または設定します。Gets or sets the trace level that determines the messages the switch allows.

SwitchSetting SwitchSetting SwitchSetting SwitchSetting

このスイッチの現在の設定を取得または設定します。Gets or sets the current setting for this switch.

(Inherited from Switch)
TraceError TraceError TraceError TraceError

スイッチがエラー処理メッセージを許可するかどうかを示す値を取得します。Gets a value indicating whether the switch allows error-handling messages.

TraceInfo TraceInfo TraceInfo TraceInfo

スイッチが情報メッセージを許可するかどうかを示す値を取得します。Gets a value indicating whether the switch allows informational messages.

TraceVerbose TraceVerbose TraceVerbose TraceVerbose

スイッチがすべてのメッセージを許可するかどうかを示す値を取得します。Gets a value indicating whether the switch allows all messages.

TraceWarning TraceWarning TraceWarning TraceWarning

スイッチが警告メッセージを許可するかどうかを示す値を取得します。Gets a value indicating whether the switch allows warning messages.

Value Value Value Value

スイッチの値を取得または設定します。Gets or sets the value of the switch.

(Inherited from Switch)

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes()

スイッチによってサポートされるカスタム属性を取得します。Gets the custom attributes supported by the switch.

(Inherited from Switch)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
OnSwitchSettingChanged() OnSwitchSettingChanged() OnSwitchSettingChanged() OnSwitchSettingChanged()

このスイッチのレベルを更新して修正します。Updates and corrects the level for this switch.

OnValueChanged() OnValueChanged() OnValueChanged() OnValueChanged()

SwitchSetting プロパティを Value プロパティと等価の整数に設定します。Sets the SwitchSetting property to the integer equivalent of the Value property.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象

こちらもご覧ください