Nasıl Log4net ile C # giriş yapmak

click fraud protection

Yazdığın zaman bilgisayar kodu C # 'da, günlük kodunu eklemek iyi bir fikirdir. Bu şekilde, bir şeyler ters gittiğinde nereye bakmaya başlayacağınızı bilirsiniz. Java dünyası bunu yıllardır yapıyor. Bu amaçla log4net kullanabilirsiniz. Popüler bir açık kaynaklı günlük kaydı çerçevesi olan Apache log4j 2'nin bir parçasıdır.

Bu tek .NET günlüğü çerçevesi değil; çok var. Ancak Apaçi adı güvenilirdir ve orijinal Java günlük kaydı çerçevesi 15 yıldan uzun bir süredir kullanılmaktadır.

Neden Log4net Günlük Kaydı Çerçevesi Kullanılmalı?

Bir uygulama veya sunucu çöktüğünde nedenini merak ediyorsunuz. Bir donanım hatası, kötü amaçlı yazılım, belki bir Hizmet Reddi saldırısı mı, yoksa tüm kod kontrollerinizi atlamayı başaran tuhaf bir tuş kombinasyonu muydu? Sadece bilmiyorsun.

Düzeltilebilmesi için bir kilitlenmenin neden oluştuğunu öğrenmeniz gerekir. Günlüğe kaydetme etkinleştirildiğinde, bunun neden olduğunu görebilirsiniz.

Başlangıç

Log4net dosyasını Apache log4net web sitesinden indirin. PGP imzasını veya MD5 sağlama toplamlarını kullanarak indirilen dosyaların bütünlüğünü doğrulayın. Sağlama toplamları PGP imzası kadar güçlü göstergeler değildir.

instagram viewer

Log4net'i kullanma

Log4net artan önceliğe sahip olanlardan hiç birine kadar yedi günlük kaydını destekler. Bunlar:

  1. KAPALI
  2. ÖLÜMCÜL
  3. HATA
  4. WARN
  5. BİLGİ
  6. DEBUG
  7. HERŞEY

Yüksek seviyeler düşük olanları içerir. Hata ayıklarken, DEBUG hepsini gösterir, ancak üretimde sadece FATAL ile ilgilenebilirsiniz. Bu seçim, bileşen düzeyinde programlı olarak veya bir XML Config dosyasında yapılabilir.

Kaydediciler ve Ekleyiciler

Esneklik için log4net günlükçüleri, ekleyicileri ve düzenleri kullanır. Bir kaydedici, günlüğe kaydetmeyi denetleyen bir nesnedir ve ILog arabiriminin bir uygulamasıdır. beş boolean yöntemi belirtir: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled ve IsFatalEnabled. Ayrıca aşırı yükler ve beş biçimlendirilmiş dize sürümü ile birlikte beş yöntemi (Debug, Info, Warn, Error veFatal) belirtir. IL4 arayüzünün tamamını log4net çevrimiçi kılavuzunda görebilirsiniz.

Kaydedicilere düzeylerden biri atanır, ancak TÜMÜ veya KAPALI değil, yalnızca beşi atanır.

Ekler günlüğe kaydetmenin nereye gittiğini denetler. Bir veritabanına, bir bellek içi arabelleğe, konsola, uzak bir ana bilgisayara, yuvarlanan günlükleri olan bir metin dosyasına, Windows Olay Günlüğüne veya hatta SMTP yoluyla e-postaya olabilir. Toplam 22 appenders vardır ve bunlar birleştirilebilir böylece bol seçenek var. Ekleyiciler (dolayısıyla adı) bir kaydediciye eklenir.

Ekleyiciler olayları alt dizeleri, olay düzeyini, düzey aralığını ve günlükçü adının başlangıcını eşleştirerek filtreler.

düzenleri

Son olarak, bir Appender ile ilişkilendirilebilen yedi düzen vardır. Bunlar, etkinliğin iletisinin nasıl günlüğe kaydedileceğini denetler ve istisna metni, zaman damgası düzenlerini ve XML öğeleri.

XML ile Yapılandırma

Yapılandırma programlı olarak yapılabilse de, XML Yapılandırma dosyalarıyla da yapılabilir. Neden kod değişikliklerine göre yapılandırma dosyalarını tercih edersiniz? Basit, bir destek adamının bir yapılandırma dosyasında değişiklik yapmasını sağlamak, bir programcıya kodu değiştirmek, test etmek ve yeni bir sürümü yeniden dağıtmak zorunda kalmaktan daha kolaydır. Yani yapılandırma dosyaları gitmek için bir yoldur. Mümkün olan en basit yol, aşağıdaki örnekte gösterildiği gibi App.config projenizi eklemektir:

1.0UTF-8





















Log4net çevrimiçi belgeleri tüm yapılandırma dosyası alanlarını açıklar. App.config'i kurduktan sonra, log4net ve bu satırı kullanarak ekleyin:

[montaj: log4net. Yapılandırma. XmlConfigurator (Watch = true)]

Ayrıca, gerçek günlükçünün LogManager'a bir çağrı ile getirilmesi gerekir. GetLogger (...). GetLogger genellikle içinde kullanıldığı typeof (class) ile çağrılır, ancak bu işlev çağrısı şunları da getirir:

Sistemi. Yansıma. MethodBase. GetCurrentMethod (). DeclaringType

Bu örnek her ikisini de yorumlanmış olarak gösterir, böylece seçim yapabilirsiniz.

log4net kullanarak;
[montaj: log4net. Yapılandırma. XmlConfigurator (Watch = true)]
ad alanı gvmake
{
sınıf Programı
{
özel statik salt okunur ILog log = LogManager. GetLogger (Sistem. Yansıma. MethodBase. GetCurrentMethod
() .DeclaringType);
// özel statik salt okunur ILog log = LogManager. GetLogger (typeof (Program));
statik boşluk Ana (dize [] argümanları)
{
log. Hata Ayıklama ("Uygulama Başlatma");
}
}
}

instagram story viewer