TraceSwitch Kelas

Definisi

Menyediakan sakelar multitingkat untuk mengontrol pelacakan dan output debug tanpa mengompilasi ulang kode Anda.

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

Contoh

Contoh kode berikut membuat baru TraceSwitch dan menggunakan sakelar untuk menentukan apakah akan mencetak pesan kesalahan. Sakelar dibuat di tingkat kelas. MyMethod menulis pesan kesalahan pertama jika Level properti diatur ke TraceLevel.Error atau lebih tinggi. Namun, MyMethod tidak menulis pesan kesalahan kedua jika Level kurang dari 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

Keterangan

Anda dapat menggunakan sakelar pelacakan untuk memfilter pesan berdasarkan kepentingannya. Kelas TraceSwitch menyediakan TraceErrorproperti , TraceWarning, TraceInfo, dan TraceVerbose untuk menguji tingkat sakelar. Properti Level mendapatkan atau mengatur sakelar TraceLevel.

Anda dapat membuat TraceSwitch dalam kode Anda dan mengatur tingkat langsung ke instrumen bagian kode tertentu.

Hanya di .NET Framework aplikasi, Anda juga dapat mengatur tingkat TraceSwitch melalui file konfigurasi aplikasi lalu menggunakan tingkat yang dikonfigurasi TraceSwitch di aplikasi Anda. Dalam file konfigurasi aplikasi, Anda dapat menambahkan atau menghapus sakelar, mengatur nilai sakelar, atau menghapus semua sakelar yang sebelumnya diatur oleh aplikasi. File konfigurasi harus diformat seperti contoh berikut:

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

Bagian konfigurasi ini menentukan dengan DisplayName yang TraceSwitch diatur ke mySwitch, dan Level diatur ke 1, yang sesuai dengan nilai TraceLevel.Errorenumerasi .

Catatan

Anda juga dapat menggunakan teks untuk menentukan nilai pengalih. Misalnya, true untuk BooleanSwitch, atau teks yang mewakili nilai enumerasi, seperti Error untuk TraceSwitch. Baris <add name="mySwitch" value="Error" /> sama dengan <add name="mySwitch" value="1" />.

Dalam aplikasi, Anda dapat menggunakan tingkat sakelar yang dikonfigurasi dengan membuat TraceSwitch dengan nama yang sama, seperti yang ditunjukkan dalam contoh berikut:

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

Di aplikasi .NET Core dan .NET 5+, Level dari sakelar baru default ke TraceLevel.Off.

Di aplikasi .NET Framework, properti pengalihan Level default ke nilai yang ditentukan dalam file konfigurasi. TraceSwitch Jika konstruktor tidak dapat menemukan pengaturan pengalihan awal dalam file konfigurasi, Level dari sakelar baru default ke TraceLevel.Off.

Anda harus mengaktifkan pelacakan atau penelusuran kesalahan untuk menggunakan sakelar. Sintaks berikut adalah spesifik pengkompilasi. Jika Anda menggunakan pengkompilasi selain C# atau Visual Basic, lihat dokumentasi untuk pengkompilasi Anda.

  • Untuk mengaktifkan penelusuran kesalahan di C#, tambahkan /d:DEBUG bendera ke baris perintah pengkompilasi saat Anda mengkompilasi kode, atau tambahkan #define DEBUG ke bagian atas file Anda. Di Visual Basic, tambahkan /d:DEBUG=True bendera ke baris perintah pengkompilasi.

  • Untuk mengaktifkan pelacakan di C#, tambahkan /d:TRACE bendera ke baris perintah pengkompilasi saat Anda mengkompilasi kode, atau tambahkan #define TRACE ke bagian atas file Anda. Di Visual Basic, tambahkan /d:TRACE=True bendera ke baris perintah pengkompilasi.

Catatan

Sakelar pengkompilasi debug dan pelacakan ini tidak diperlukan saat menggunakan TraceSwitch kelas dalam isolasi. Mereka hanya diperlukan bersama dengan Trace metode atau Debug yang dikompilasi secara kondisional.

Untuk informasi selengkapnya tentang instrumentasi aplikasi Anda, lihat Debug dan Trace. Untuk informasi selengkapnya tentang mengonfigurasi dan menggunakan sakelar pelacakan, lihat Lacak Sakelar.

Catatan

Untuk meningkatkan performa, Anda dapat membuat TraceSwitch anggota static di kelas Anda.

Konstruktor

TraceSwitch(String, String)

Menginisialisasi instans TraceSwitch baru kelas, menggunakan nama dan deskripsi tampilan yang ditentukan.

TraceSwitch(String, String, String)

Menginisialisasi instans TraceSwitch baru kelas, menggunakan nama tampilan, deskripsi, dan nilai default yang ditentukan untuk sakelar.

Properti

Attributes

Mendapatkan atribut sakelar kustom yang ditentukan dalam file konfigurasi aplikasi.

(Diperoleh dari Switch)
DefaultValue

Mendapatkan nilai default yang ditetapkan dalam konstruktor.

(Diperoleh dari Switch)
Description

Mendapatkan deskripsi sakelar.

(Diperoleh dari Switch)
DisplayName

Mendapatkan nama yang digunakan untuk mengidentifikasi sakelar.

(Diperoleh dari Switch)
Level

Mendapatkan atau mengatur tingkat pelacakan yang menentukan pesan yang diizinkan pengalih.

SwitchSetting

Mendapatkan atau menyetel pengaturan saat ini untuk sakelar ini.

(Diperoleh dari Switch)
TraceError

Mendapatkan nilai yang menunjukkan apakah sakelar memungkinkan pesan penanganan kesalahan.

TraceInfo

Mendapatkan nilai yang menunjukkan apakah sakelar mengizinkan pesan informasi.

TraceVerbose

Mendapatkan nilai yang menunjukkan apakah sakelar mengizinkan semua pesan.

TraceWarning

Mendapatkan nilai yang menunjukkan apakah sakelar mengizinkan pesan peringatan.

Value

Mendapatkan atau mengatur nilai sakelar.

(Diperoleh dari Switch)

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetSupportedAttributes()

Mendapatkan atribut kustom yang didukung oleh sakelar.

(Diperoleh dari Switch)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnSwitchSettingChanged()

Updates dan memperbaiki tingkat untuk sakelar ini.

OnValueChanged()

SwitchSetting Mengatur properti ke bilangan bulat yang Value setara dengan properti .

OnValueChanged()

Dipanggil ketika Value properti diubah.

(Diperoleh dari Switch)
Refresh()

Merefresh data konfigurasi pelacakan.

(Diperoleh dari Switch)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga