Bagikan melalui


Melacak Pendengar

Nota

Artikel ini khusus untuk .NET Framework. Ini tidak berlaku untuk implementasi .NET yang lebih baru, termasuk .NET 6 dan versi yang lebih baru.

Saat menggunakan Trace, Debug , dan TraceSource, Anda harus memiliki mekanisme untuk mengumpulkan dan merekam pesan yang dikirim. Pesan jejak diterima oleh pendengar. Tujuan pendengar adalah untuk mengumpulkan, menyimpan, dan merutekan pesan pelacakan. Pendengar mengarahkan output pelacakan ke target yang sesuai, seperti log, jendela, atau file teks.

Pendengar tersedia untuk Debug, Jejak, dan TraceSource kelas, yang masing-masing dapat mengirim outputnya ke berbagai objek pendengar. Berikut ini adalah pendengar yang telah ditentukan sebelumnya dan umum digunakan:

  • TextWriterTraceListener Mengalihkan output ke instans TextWriter kelas atau ke apa pun yang merupakan Stream kelas. Ini juga dapat menulis ke konsol atau ke file, karena ini adalah Stream kelas.

  • Mengalihkan EventLogTraceListener output ke log peristiwa.

  • Mengirimkan pesan DefaultTraceListener dan WriteLine ke OutputDebugString dan ke Debugger.Log . Di Visual Studio, ini menyebabkan pesan debugging muncul di jendela Output. Pesan Fail dan Assert yang gagal juga mengirimkan ke OutputDebugString Windows API dan metode Debugger.Log, serta menyebabkan kotak pesan ditampilkan. Perilaku ini adalah perilaku default untuk pesan Debug dan Trace, karena DefaultTraceListener secara otomatis disertakan dalam setiap koleksi Listeners dan merupakan satu-satunya pemantau yang disertakan secara otomatis.

  • Mengarah ConsoleTraceListener keluaran penelusuran atau debugging ke keluaran standar atau aliran kesalahan standar.

  • Mengarahkan DelimitedListTraceListener output pelacakan atau penelusuran kesalahan ke penulis teks, seperti penulis streaming, atau ke aliran, seperti aliran file. Output pelacakan dalam format teks berbatas yang menggunakan pemisah yang ditentukan oleh properti Delimiter.

  • Menavigasi XmlWriterTraceListener untuk output pelacakan atau debugging sebagai data yang dikodekan dalam format XML ke TextWriter atau ke Stream, seperti FileStream.

Jika Anda ingin pendengar selain DefaultTraceListener menerima output Debug, Trace, dan TraceSource, Anda harus menambahkannya ke koleksi Listeners. Untuk informasi selengkapnya, lihat Cara: Membuat dan Menginisialisasi Pendengar Jejak dan Cara: Menggunakan TraceSource dan Filter dengan Pendengar Jejak. Setiap pendengar dalam koleksi Listeners mendapatkan pesan yang sama dari metode pelacakan keluaran. Misalnya, Anda menyiapkan dua listener: TextWriterTraceListener dan EventLogTraceListener. Setiap pendengar menerima pesan yang sama. TextWriterTraceListener akan mengarahkan outputnya ke aliran, dan EventLogTraceListener akan mengarahkan outputnya ke log peristiwa.

Contoh berikut menunjukkan cara mengirim output ke koleksi Listeners .

' Use this example when debugging.
Debug.WriteLine("Error in Widget 42")
' Use this example when tracing.
Trace.WriteLine("Error in Widget 42")
// Use this example when debugging.
System.Diagnostics.Debug.WriteLine("Error in Widget 42");
// Use this example when tracing.
System.Diagnostics.Trace.WriteLine("Error in Widget 42");

Debug dan lacak memiliki koleksi Listeners yang sama, jadi jika Anda menambahkan objek listener ke koleksi Debug.Listeners di aplikasi Anda, objek tersebut akan ditambahkan ke koleksi Trace.Listeners juga.

Contoh berikut menunjukkan cara menggunakan pendengar untuk mengirim informasi pelacakan ke konsol:

Trace.Listeners.Clear()
Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
System.Diagnostics.Trace.Listeners.Clear();
System.Diagnostics.Trace.Listeners.Add(
   new System.Diagnostics.TextWriterTraceListener(Console.Out));

Developer-Defined Pendengar

Anda dapat menentukan listener Anda sendiri dengan mewarisi dari kelas dasar TraceListener dan mengambil alih metodenya dengan metode yang disesuaikan. Untuk informasi selengkapnya tentang membuat pendengar yang ditentukan pengembang, lihat TraceListener di referensi .NET Framework.

Lihat juga