Bazı insanlar log4net yerine ELMAH kullanıyor . Onu daha iyi yapan nedir?
Yığın Taşması sorusuna yanıt olarak ELMAH hakkında bilgi edindim C # 'da nasıl oturum açabilirim ?
Bazı insanlar log4net yerine ELMAH kullanıyor . Onu daha iyi yapan nedir?
Yığın Taşması sorusuna yanıt olarak ELMAH hakkında bilgi edindim C # 'da nasıl oturum açabilirim ?
Yanıtlar:
ELMAH, web uygulamalarınız için hataları ve istisnaları izleme amacına hizmet eder ve bu istisnaları birçok farklı mekanizma (SQL, RSS, Twitter, dosyalar, e-posta vb.) Aracılığıyla kolayca kaydetmenize veya görüntülemenize olanak tanır. Yerleşik istisna işlemeye sahip değilseniz ELMAH, büyük olasılıkla bir web uygulaması ortamında istisna işleme açısından aradığınız şeyi size verecektir.
Log4net, istisna kaydı için de kullanılabilir, ancak web uygulamanıza bağlanmak için kendi işleyicilerinizi yuvarlamanız gerekebilir. Log4net genel amaçlı bir günlükleme çerçevesi olduğundan, başka türden bilgi günlük kaydı yapmanız gerekirse, Log4net ELMAH üzerinde parlayacaktır. Log4net hemen hemen her .NET uygulamasında da kullanılabilir.
Log4Net , uygulamanızda (web, konsol, dll, vb.) Kullanılması amaçlanan bir API ile genel amaçlı bir günlükleme çerçevesidir.
logger.Debug("Some low level debug message...");
logger.Info("Some basic info");
logger.Warn("Some business logic problem, but not critical");
logger.Error("An unexpected error");
ELMAH , özellikle bir web uygulamasındaki istisnaları günlüğe kaydetmek için göze çarpmayan bir IIS eklentisidir . Uygulamanızda ELMAH için bir referans görmezsiniz, etkileşimde bulunduğunuz bir API'ye sahip değildir. Davranışta cıvatalamak için modül ve işleyici IIS uzantı noktalarını kullanır. Ayrıca, web uygulamanızda meydana gelen hataları görüntülemek için bir web ön ucuna sahiptir. Log4Net'in bir ön ucu yoktur, yalnızca günlük mesajlarınızı günlük dosyaları, sistem günlüğü sunucusu, veritabanı vb. Gibi şeylere gönderebilen çeşitli günlük havuzları (Ekleyiciler) vardır.
Temel fark, ELMAH'ın işlenmemiş uygulama istisnalarını günlüğe kaydetmesidir; log4net günlüğe kaydetmesini söylediğiniz her şeyi günlüğe kaydeder. Log4net'i işlenmemiş istisnaları günlüğe kaydedecek şekilde yapılandırabilirsiniz, ancak ELMAH kutunun dışında çok sayıda yararlı bilgiyi yakalar.
ELMAH, hata olaylarına bağlanan ve ardından günlük kaydı yapan bir HTTP modülü oluşturarak çalışır. Bu, kötü tasarım nedeniyle kolayca engellenebilir ve kırılabilir. Log4Net önceden ek çalışma gerektirebilir, ancak bir AOP çerçevesi kullanırsanız ve bunu sınıfınıza veya hatta derlemenize uygularsanız, çok az kod ve çabayla çok daha iyi istisna günlüğü elde edebilirsiniz.
ELMAH yalnızca, WCF hizmetlerinde elde edilmesi zor olabilen HttpContext'e erişimi varsa çalışır. Böylece, yine de WCF'de başka bir kaydedici kullanırsınız. Neden daha evrensel olan tek bir çözümü kullanmıyorsunuz?
ELMAH , özellikle web uygulamaları için kullanılırken, log4net hem web hem de Windows uygulamalarında kullanılır. ELMAH, bir web uygulamasında log4net'ten çok daha fazla avantaja sahiptir.
ELMAH çok güçlü, ama aynı zamanda yaptığı şeyde çok özel. Ben Log4Net gerektirir inanıyorum iken, sizin için bir sürü iş yapar sizi hata işleme ve günlüğünü yapmak.