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 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
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) |