Pengalih Pelacakan

Pengalih pelacakan memungkinkan Anda mengaktifkan, menonaktifkan, dan memfilter output pelacakan. Mereka adalah objek yang ada dalam kode Anda dan dapat dikonfigurasi secara eksternal melalui file .config. Ada tiga jenis pengalih pelacakan yang disediakan dalam .NET Framework: kelas BooleanSwitch, kelas TraceSwitch, dan kelas SourceSwitch. Kelas BooleanSwitch bertindak sebagai sakelar pengalih, baik mengaktifkan atau menonaktifkan berbagai pernyataan jejak. Kelas TraceSwitch dan SourceSwitch memungkinkan Anda mengaktifkan sakelar pelacakan untuk tingkat pelacakan tertentu sehingga pesan Trace atau TraceSource yang ditentukan untuk tingkat tersebut dan semua tingkat di bawahnya muncul. Jika Anda menonaktifkan sakelar, pesan pelacakan tidak akan muncul. Semua kelas ini berasal dari switch kelas abstrak (MustInherit), seperti halnya sakelar yang dikembangkan pengguna.

Sakelar pelacakan dapat berguna untuk memfilter informasi. Misalnya, Anda mungkin ingin melihat setiap pesan pelacakan dalam modul akses data, tetapi hanya pesan kesalahan di aplikasi lainnya. Dalam hal ini, Anda akan menggunakan satu sakelar pelacakan untuk modul akses data dan satu sakelar untuk aplikasi lainnya. Dengan menggunakan file .config untuk mengonfigurasi sakelar ke pengaturan yang sesuai, Anda dapat mengontrol jenis pesan pelacakan apa yang Anda terima. Untuk informasi selengkapnya, lihat Cara: Membuat, Menginisialisasi, dan Mengonfigurasi Pengalihan Pelacakan.

Biasanya, aplikasi yang disebarkan dijalankan dengan sakelarnya dinonaktifkan, sehingga pengguna tidak perlu mengamati banyak pesan jejak yang tidak relevan muncul di layar atau mengisi file log saat aplikasi berjalan. Jika masalah muncul selama eksekusi aplikasi, Anda dapat menghentikan aplikasi, mengaktifkan sakelar, dan memulai ulang aplikasi. Kemudian pesan pelacakan akan ditampilkan.

Untuk menggunakan sakelar, Anda harus terlebih dahulu membuat objek pengalihan dari kelas BooleanSwitch, kelas TraceSwitch, atau kelas sakelar yang ditentukan pengembang. Untuk informasi selengkapnya tentang membuat sakelar yang ditentukan pengembang, lihat kelas Switch di referensi .NET Framework. Kemudian Anda menetapkan nilai konfigurasi yang menentukan kapan objek pengalihan akan digunakan. Anda kemudian menguji pengaturan objek pengalihan dalam berbagai metode pelacakan Jejak (atau Debug).

Tingkatan pelacakan

Saat Anda menggunakan TraceSwitch, ada pertimbangan tambahan. Objek TraceSwitch memiliki empat properti yang mengembalikan nilai Boolean yang menunjukkan apakah sakelar diatur ke setidaknya tingkat tertentu:

Tingkat memungkinkan Anda membatasi jumlah informasi pelacakan yang Anda terima hanya untuk informasi yang diperlukan untuk menyelesaikan masalah. Anda menentukan tingkat detail yang Anda inginkan dalam output pelacakan Anda dengan mengatur dan mengonfigurasi sakelar pelacakan ke tingkat pelacakan yang sesuai. Anda dapat menerima pesan kesalahan, pesan peringatan, pesan informasi, pesan pelacakan verbose, atau tanpa pesan.

Sepenuhnya terserah Anda untuk memutuskan jenis pesan apa yang akan dikaitkan dengan setiap tingkatan. Biasanya, konten melacak pesan tergantung pada apa yang Anda kaitkan dengan setiap tingkat, tetapi Anda menentukan perbedaan antar tingkat. Anda mungkin ingin memberikan deskripsi terperinci tentang masalah di tingkat 3 (Info), misalnya, tetapi hanya memberikan nomor referensi kesalahan di tingkat 1 (Kesalahan). Sepenuhnya terserah Anda untuk memutuskan skema apa yang paling sesuai dalam aplikasi Anda.

Properti ini sesuai dengan nilai 1 hingga 4 enumerasi TraceLevel. Tabel berikut mencantumkan tingkat enumerasi TraceLevel dan nilainya.

Nilai enumerasi Nilai bilangan bulat Jenis pesan yang ditampilkan (atau ditulis ke target output tertentu)
Nonaktif 0 Tidak
Error 1 Hanya pesan kesalahan
Peringatan 2 Pesan peringatan dan pesan kesalahan
Info 3 Pesan informasi, pesan peringatan, dan pesan kesalahan
Verbose 4 Pesan verbose, pesan informasi, pesan peringatan, dan pesan kesalahan

Properti TraceSwitch menunjukkan tingkat pelacakan maksimum untuk sakelar. Artinya, informasi pelacakan ditulis untuk tingkat yang ditentukan serta untuk semua tingkat yang lebih rendah. Misalnya, jika TraceInfobenar, maka TraceError dan TraceWarning juga benar tetapi TraceVerbose mungkin salah.

Properti ini bersifat baca-saja. Objek TraceSwitch secara otomatis mengaturnya saat properti TraceLevel diatur. Misalnya:

Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")  
myTraceSwitch.Level = TraceLevel.Info  
' This message box displays true, because setting the level to  
' TraceLevel.Info sets all lower levels to true as well.  
MessageBox.Show(myTraceSwitch.TraceWarning.ToString())  
' This messagebox displays false.  
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString())  
System.Diagnostics.TraceSwitch myTraceSwitch =
   new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");  
myTraceSwitch.Level = System.Diagnostics.TraceLevel.Info;  
// This message box displays true, because setting the level to
// TraceLevel.Info sets all lower levels to true as well.  
MessageBox.Show(myTraceSwitch.TraceWarning.ToString());  
// This message box displays false.  
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString());  

Sakelar Developer-Defined

Selain menyediakan BooleanSwitch dan TraceSwitch, Anda dapat menentukan sakelar Anda sendiri dengan mewarisi dari kelas Switch dan menimpa metode kelas dasar dengan metode yang disesuaikan. Untuk informasi selengkapnya tentang membuat sakelar yang ditentukan pengembang, lihat kelas Switch di referensi .NET Framework.

Lihat juga