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 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:
- Ç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.
GO TO FULL VERSION