4.1 Kayıt düzeylerinin listesi

Programınızı yazdınız, sunucuya yüklediniz ve ardından hemen soru sormaya başlıyorsunuz:

  • debug()Çalışırken yöntemin çalışmadığından nasıl emin olunur production?
  • Günlüklerde çok fazla bilgi var, yalnızca hata mesajları mı bırakmak istiyorsunuz?
  • Uygulamanın bir bölümü için ayrıntılı bir günlük nasıl görebilirim?

Elbette, günlüklerin yaratıcıları aynı şeyle onlarca yıl önce karşı karşıya kaldı. Bu sorunun C dilinde nasıl çözüldüğünü size anlatmayacağım ama Java dilinde çok güzel bir şekilde çözüldü.

Günlük, bilgileri . Günlük seviyesini ayarlayarak günlüğün ayrıntılarını çok hızlı bir şekilde azaltabilir/arttırabilirsiniz. Bu seviyeler aşağıdaki tabloda açıklanmıştır:

Seviye Not
1 TÜM Tüm mesajları günlüğe kaydet
2 İZ Hata ayıklama sırasında küçük mesaj
3 HATA AYIKLAMA Hata ayıklama için önemli mesajlar
4 BİLGİ Basit mesajlar
5 UYARMAK Yalnızca önemli, hata ve uyarı yaz
6 HATA Yalnızca hataları ve önemli hataları yazın
7 ÖLÜMCÜL Yalnızca önemli hataları yaz
8 KAPALI Günlüğe mesaj yazmayın

Bu düzeyler, iletileri filtrelerken kullanılır. Günlüğe kaydetme düzeyini olarak ayarlarsanız WARN, bundan daha az önemli olan tüm mesajlar WARNatılacaktır: TRACE, DEBUG, INFO. Filtreleme düzeyini olarak ayarlarsanız FATAL, çift olur ERROR.

Filtrelemede kullanılan iki önem derecesi daha vardır - bu OFF(tüm mesajları sil) ve ALL- tüm mesajları yaz (hiçbir şeyi atma).

4.2 Günlük kurulum örneği

Basit bir günlük kurulum örneğine bakalım. Bunu yapmak için, kaynaklar klasörüne yerleştirilebilen log4j.properties dosyasına ihtiyacımız var. İçine aşağıdaki içeriği ekleyelim:

# Root logger option
log4j.rootLogger=WARN, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}

Burada ilk satırda kayıt seviyesini ayarlıyoruz - WARN. Bu da, kaydediciye durumla birlikte yazılan mesajların yok sayılacağı anlamına DEBUGgelir INFO.

  • Ne tür bir apender kullanacağımızı belirtin -ConsoleAppender
  • Günlüğü nereye yazacağımızı belirtin -System.out
  • Kayıt formatını kontrol edecek sınıfı belirledik -PatternLayout
  • Tüm mesajlar için kayıt formatını ayarlayın - tarih ve saat

4.3 Popüler kayıt hataları

Ve bir önemli nokta daha - günlük kaydındaki popüler hatalar. Bir şeyi yapmak için çok fazla seçenek yoktur, ancak birkaç yaygın hata tanımlanabilir:

  1. Çok fazla günlük kaydı . Teorik olarak önemli olabilecek her adımı günlüğe kaydetmemelisiniz. Bir kural vardır: Günlükler, performansı %10'dan fazla yüklemez . Aksi takdirde performans sorunları olacaktır.
  2. Tüm verileri tek bir dosyaya kaydetme . Bu, belirli sistemlerde dosya boyutu sınırlarının olduğundan bahsetmeye bile gerek yok, bir noktada okumanın/yazmanın çok zor olmasına neden olacaktır.
  3. Yanlış kayıt düzeylerini kullanma . Her günlük kaydı seviyesinin net sınırları vardır ve bunlara saygı gösterilmelidir. Sınır belirsizse, hangi düzeyin kullanılacağı konusunda anlaşabilirsiniz.