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 olunurproduction
?- 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 WARN
atı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 DEBUG
gelir 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:
- Ç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.
- 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.
- 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.