Aracılığıyla paylaş


dinleyicileri izleme

Uyarı

Bu makale .NET Framework'e özgüdür. .NET 6 ve sonraki sürümleri de dahil olmak üzere daha yeni .NET uygulamaları için geçerli değildir.

İzleme, Hata Ayıklama ve TraceSourcekullanırken, gönderilen iletileri toplamak ve kaydetmek için bir mekanizmanız olmalıdır. İzleme iletileri dinleyiciler tarafından alınır. Dinleyicinin amacı, izleme iletilerini toplamak, depolamak ve yönlendirmektir. Dinleyiciler, izleme çıktısını günlük, pencere veya metin dosyası gibi uygun bir hedefe yönlendirir.

Dinleyiciler, Hata Ayıklama, İzleme ve TraceSource sınıfları için mevcuttur ve her biri çıkışını çeşitli dinleyici nesnelerine yönlendirebilir. Yaygın olarak kullanılan önceden tanımlanmış dinleyiciler şunlardır:

  • Bir TextWriterTraceListener sınıfın bir örneğine veya herhangi bir TextWriter sınıfı olan öğeye çıkışı yeniden yönlendirir. Bunlar sınıflar Stream olduğundan konsola veya dosyaya da yazabilir.

  • Çıkış, EventLogTraceListener bir olay günlüğüne yönlendirilir.

  • A DefaultTraceListener , Write ve WriteLine iletilerini OutputDebugString'e ve Debugger.Log yöntemine yayar. Visual Studio'da bu, hata ayıklama iletilerinin Çıkış penceresinde görünmesine neden olur. Başarısız ve başarısız Assert iletileri outputDebugString Windows API'sine ve Debugger.Log yöntemine de yayılarak bir ileti kutusunun görüntülenmesine neden olur. Hata Ayıklama ve İzleme iletileri için bu davranış varsayılan davranıştır, çünkü DefaultTraceListener her Listeners koleksiyona otomatik olarak eklenir ve otomatik olarak eklenen tek dinleyicidir.

  • bir ConsoleTraceListener izleme veya hata ayıklama çıkışını standart çıkışa veya standart hata akışına yönlendirir.

  • Bir DelimitedListTraceListener, izleme veya hata ayıklama çıktısını bir metin yazıcısına, örneğin bir akış yazıcısına veya bir akışa, örneğin bir dosya akışına yönlendirir. İzleme çıkışı, özelliği tarafından Delimiter belirtilen sınırlayıcıyı kullanan sınırlandırılmış bir metin biçimindedir.

  • XmlWriterTraceListener XML ile kodlanmış verileri, izleme veya hata ayıklama çıkışını, bir TextWriter, bir Stream veya bir FileStream gibi bir öğeye yönlendirir.

DefaultTraceListener dışında herhangi bir dinleyicinin Hata Ayıklama, İzleme ve TraceSource çıktısını almasını istiyorsanız, bunu Listeners koleksiyonuna eklemeniz gerekir. Daha fazla bilgi öğrenmek için Nasıl yapılır: İzleme Dinleyicileri Oluşturma ve Başlatma ve Nasıl Yapılır: İzleme Dinleyicileriyle TraceSource ve Filtreleri Kullanma bölümlerine bakın. Dinleyiciler koleksiyonundaki herhangi bir dinleyici, izleme çıkış yöntemlerinden aynı iletileri alır. Örneğin, iki dinleyici ayarladığınızı varsayalım: bir TextWriterTraceListener ve bir EventLogTraceListener. Her dinleyici aynı iletiyi alır. TextWriterTraceListener çıktısını bir akışa, EventLogTraceListener ise çıkışını bir olay günlüğüne yönlendirir.

Aşağıdaki örnekte Dinleyiciler koleksiyonuna çıkış gönderme gösterilmektedir.

' 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");

Hata ayıklama ve izleme aynı Dinleyiciler koleksiyonunu paylaşır, bu nedenle uygulamanızdaki debug.listeners koleksiyonuna bir dinleyici nesnesi eklerseniz trace.listeners koleksiyonuna da eklenir.

Aşağıdaki örnekte, izleme bilgilerini konsola göndermek için dinleyicinin nasıl kullanılacağı gösterilmektedir:

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 Dinleyicileri

TraceListener temel sınıfından devralarak ve yöntemlerini özelleştirilmiş yöntemlerinizle geçersiz kılarak kendi dinleyicilerinizi tanımlayabilirsiniz. Geliştirici tanımlı dinleyiciler oluşturma hakkında daha fazla bilgi için bkz. TraceListener .NET Framework başvuru rehberi.

Ayrıca bakınız