TraceSwitch クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コードを再コンパイルせずにトレースとデバッグ出力を制御するためのマルチレベル スイッチを提供します。
public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
inherit Switch
Public Class TraceSwitch
Inherits Switch
- 継承
例
次のコード例では、新しい TraceSwitch を作成し、スイッチを使用してエラー メッセージを出力するかどうかを判断します。 スイッチはクラス レベルで作成されます。
Level プロパティが TraceLevel.Error 以上に設定されている場合、MyMethod
は最初のエラー メッセージを書き込みます。 ただし、Level が TraceLevel.Verbose未満の場合、MyMethod
は 2 番目のエラー メッセージを書き込むことはありません。
// 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、TraceWarning、TraceInfo、および TraceVerbose プロパティを提供します。 Level プロパティは、スイッチの TraceLevelを取得または設定します。
コードに TraceSwitch を作成し、コードの特定のセクションをインストルメント化するようにレベルを直接設定できます。
.NET Framework アプリでのみ、アプリケーション構成ファイルを使用して TraceSwitch のレベルを設定し、アプリケーションで構成された TraceSwitch レベルを使用することもできます。 アプリケーション構成ファイルでは、スイッチの追加または削除、スイッチの値の設定、またはアプリケーションによって以前に設定されたすべてのスイッチのクリアを行うことができます。 構成ファイルは、次の例のように書式設定する必要があります。
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
この構成セクションでは、DisplayName を mySwitch
に設定し、Level を 1 に設定した TraceSwitch を定義 TraceLevel.Error列挙値に対応します。
手記
テキストを使用して、スイッチの値を指定することもできます。 たとえば、BooleanSwitchの true
、または列挙値を表すテキスト (TraceSwitchの Error
など)。 行 <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
.NET Core および .NET 5 以降のアプリでは、新しいスイッチの Level は既定で TraceLevel.Offに設定されます。
.NET Framework アプリでは、スイッチ Level プロパティの既定値は、構成ファイルで指定された値になります。 TraceSwitch コンストラクターが構成ファイルに初期スイッチ設定を見つけられない場合、新しいスイッチの Level は既定で TraceLevel.Offに設定されます。
スイッチを使用するには、トレースまたはデバッグを有効にする必要があります。 次の構文はコンパイラ固有です。 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, String) |
指定した表示名、説明、およびスイッチの既定値を使用して、TraceSwitch クラスの新しいインスタンスを初期化します。 |
TraceSwitch(String, String) |
指定した表示名と説明を使用して、TraceSwitch クラスの新しいインスタンスを初期化します。 |
プロパティ
Attributes |
アプリケーション構成ファイルで定義されているカスタム スイッチ属性を取得します。 (継承元 Switch) |
DefaultValue |
コンストラクターで割り当てられた既定値を取得します。 (継承元 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) |
Refresh() |
トレース構成データを更新します。 (継承元 Switch) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
こちらもご覧ください
.NET