İz Dinleyicileri
Trace, Debug ve kullanırken TraceSource gönderilen iletileri toplamak ve kaydetmek için bir mekanizmanız olması gerekir. İzleme iletileri dinleyiciler tarafından alınır. Bir dinleyicinin amacı, izleme iletilerini toplamak, depolamak ve yönlendirmaktır. Dinleyiciler izleme çıkışını günlük, pencere veya metin dosyası gibi uygun bir hedefe yönlendirir.
Dinleyicileri, her biri hata ayıklama, izleme ve sınıflar tarafından kullanılabilir ve TraceSource Bu, çıktısını çeşitli dinleyici nesnelerine gönderebilirler. Aşağıda yaygın olarak kullanılan önceden tanımlanmış dinleyiciler verilmiştir:
TextWriterTraceListener, Çıktıyı sınıfının bir örneğine TextWriter veya bir sınıf olan herhangi bir örneğe yönlendirir Stream . Ayrıca, bunlar sınıflar olduklarından konsola veya bir dosyaya da yazabilir Stream .
EventLogTraceListenerÇıktıyı bir olay günlüğüne yönlendirir.
Bir DefaultTraceListener Write ve WriteLine Iletilerini OutputDebugString ve Debugger. log yöntemine yayar. Visual Studio, bu, hata ayıklama iletilerinin çıkış penceresinde görünmesine neden olur. başarısız ve başarısız onaylama iletileri ayrıca outputdebugstring Windows apı ve Debugger. Log yöntemine de yayıldığında ileti kutusunun görüntülenmesine neden olur. Bu davranış, hata ayıklama ve izleme iletilerinde varsayılan davranıştır, çünkü DefaultTraceListener her koleksiyona otomatik olarak eklenir
Listenersve tek dinleyici otomatik olarak eklenir.Bir ConsoleTraceListener izleme veya hata ayıklama çıkışını standart çıktıya ya da standart hata akışına yönlendirir.
Bir DelimitedListTraceListener akış yazıcı gibi bir metin yazıcısına veya dosya akışı gibi bir akışa izleme veya hata ayıklama çıktısı yönlendirir. İzleme çıktısı, özelliği tarafından belirtilen sınırlayıcıyı kullanan bir ayrılmış metin biçimindedir Delimiter .
, Bir veya gibi bir XmlWriterTraceListener veya ÖĞESINE XML kodlu veriler olarak izleme veya hata ayıklama çıktısı yönlendirir TextWriter Stream FileStream .
DefaultTraceListener Hata ayıklama, izleme ve çıkış almak için öğesine ek olarak herhangi bir dinleyici istiyorsanız TraceSource , onu koleksiyona eklemeniz gerekir Listeners . Daha fazla bilgi için bkz. nasıl yapılır: Izleme dinleyicileri oluşturma ve başlatma ve nasıl yapılır: Izleme dinleyicileri Ile TraceSource ve filtreler kullanma. 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 yönlendirebilir ve EventLogTraceListener çıkışını bir olay günlüğüne yönlendirebilir.
Aşağıdaki örnek, bir çıkışın dinleyici koleksiyonuna nasıl gönderileceğini gösterir.
' 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ı dinleyici koleksiyonunu paylaşır, bu nedenle uygulamanızdaki bir Debug. Listeners koleksiyonuna bir dinleyici nesnesi eklerseniz, Trace. Listeners koleksiyonuna de eklenir.
Aşağıdaki örnek, bir konsola izleme bilgilerini göndermek için bir dinleyicinin nasıl kullanılacağını gösterir:
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 kendi dinleyicilerini tanımlayabilir ve kendi yöntemlerini özelleştirilmiş yöntemleriniz ile geçersiz kılarak tanımlayabilirsiniz. geliştirici tanımlı dinleyiciler oluşturma hakkında daha fazla bilgi için TraceListener .NET Framework başvuru içindeki bölümüne bakın.