TraceSwitch Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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) |