Bagikan melalui


TraceSwitch Kelas

Definisi

Menyediakan sakelar multitingkat untuk mengontrol penelusuran dan output debug tanpa mengkompilasi 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 TraceSwitch baru dan menggunakan sakelar untuk menentukan apakah akan mencetak pesan kesalahan. Sakelar dibuat di tingkat kelas. MyMethod menulis pesan kesalahan pertama jika properti Level 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 properti TraceError, TraceWarning, TraceInfo, dan TraceVerbose untuk menguji tingkat sakelar. Properti Level mendapatkan atau mengatur TraceLevelsakelar .

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

Hanya di aplikasi .NET Framework, Anda juga dapat mengatur tingkat TraceSwitch melalui file konfigurasi aplikasi lalu menggunakan tingkat TraceSwitch yang dikonfigurasi 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 TraceSwitch dengan DisplayName diatur ke mySwitch, dan Level diatur ke 1, yang sesuai dengan nilai enumerasi TraceLevel.Error.

Nota

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" /> setara 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 pengalihan baru default ke TraceLevel.Off.

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

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

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

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

Nota

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

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

Nota

Untuk meningkatkan performa, Anda dapat membuat anggota TraceSwitchstatic di kelas Anda.

Konstruktor

TraceSwitch(String, String, String)

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

TraceSwitch(String, String)

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

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 mengatur pengaturan saat ini untuk sakelar ini.

(Diperoleh dari Switch)
TraceError

Mendapatkan nilai yang menunjukkan apakah sakelar mengizinkan 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 Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
OnSwitchSettingChanged()

Memperbarui dan memperbaiki tingkat untuk sakelar ini.

OnValueChanged()

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

OnValueChanged()

Dipanggil ketika properti Value diubah.

(Diperoleh dari Switch)
Refresh()

Menyegarkan data konfigurasi pelacakan.

(Diperoleh dari Switch)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga