2008-10-16 16 views
6

Yerleşik TraceSource ve TraceListener sınıflarına başladım ve TraceSources ve TraceListeners öğelerinden bağımsız olarak olayların çıktı biçimini değiştirmek istiyorum. TraceListeners kendi biçimlendirmelerini uygular gibi görünüyor. Kullandığım her TraceListener için yeni bir sınıf oluşturmadan biçimlendirmeyi tamamen değiştirmek mümkün mü?.Net TraceSource/TraceListener çerçevesi, log4net'in Biçimlendiricileri'ne benzer bir şey var mı?

cevap

5

Enterprise Library Günlüğe Kaydetme Uygulaması Bloğu (http://msdn.microsoft.com/en-us/library/cc309506.aspx) .Net TraceSource ve TraceListener sınıflarında yerleşiktir (böylece hemen hemen projenize düşürebilir ve işinize yarayacaktır) ve bir ileti biçimlendiricisini destekler. web.config (veya app.config) içinde yapılandırabilir.

+0

EntLib'in performansı çok düşük, bu yüzden onu kullanmamanızı öneririz. Burada karşılaştır: https://essentialdiagnostics.codeplex.com/wikipage?title=Comparison&referringTitle=Guidance –

0

Düz metni TraceListener ürününüze yerleştirmek için Write() veya WriteLine() yöntemlerini doğrudan yönteminde kullanabilirsiniz.

+1

Sorun, TraceSource değil Trace. – agarcian

2

Bu gecikme süresidir, ancak Log4net, NLog ve LAB'de bulunanlara benzer biçimlendirmeyi destekleyen bir TraceSource/TraceListener çözümü arayan tüm yeni kullanıcılar için Ukadc.Diagnostics deneyebilirsiniz. Ukadc tarafından sağlanan TraceListeners bir biçimlendirme dizesi ile yapılandırabilir ve izler dinleyiciye yazıldığında uygulanır. Ayrıca kendi belirteçleri yazabilir ve bunları biçimlendirme ifadesine ekleyebilirsiniz. Mesela, her seferinde değerinin alındığı zaman bir sayacı arttıran bir eğlence yazdım. Sonuç, günlük dosyasında, her satırın ardışık olarak artan bir sayı almasıdır. Çıkışa eklenecek Trace.CorrelationManager.LogicalOperationStack gelen bilgileri sağlayan başka bir tane yazdım.

Bilgisayarımda şu anda bu işe sahip olan veya bu örnekleri yayınlayabileceğim kolay erişime sahip değilim.

0

Burada biten ve hala TraceListeners için özel biçimlendirme isteyen kişiler için, Essential.Diagnostics https://essentialdiagnostics.codeplex.com/ (ifşa etmekteyim: projede yer alıyorum).

Özgün soruyu yanıtlamak için bir TraceListener yapılandırmada özel özellikleri kabul edebilir, bu nedenle yapılandırmaya dayalı birden çok biçimi işleyen bir TraceListener yazmak mümkündür; bu, birden çok yazmadan daha esnek olabilir.

Bu, Essential.Diagnostics'in sahip olduğu bir özelliktir; her ikisi de halihazırda kullanılabilen birçok biçim değeriyle, özel biçim dizelerini destekleyen bir ColorConsoleTraceListener ve RollingFileTraceListener içerir.

İlgili konular