Hala oturum açmak için log4j kütüphanesini bir Java 5 projesine eklemeye değer mi, bazı güzel rollover ayarları olan bir dosyaya bazı istisnalar diyelim. Yoksa standart util.logging tesisi de işi yapacak mı?
Ne düşünüyorsun?
Hala oturum açmak için log4j kütüphanesini bir Java 5 projesine eklemeye değer mi, bazı güzel rollover ayarları olan bir dosyaya bazı istisnalar diyelim. Yoksa standart util.logging tesisi de işi yapacak mı?
Ne düşünüyorsun?
Yanıtlar:
Açıkladığınız ihtiyaçlar için muhtemelen util.logging ile iyi olduğunuzu söyleyebilirim.
İyi bir karar ağacı için Log4j vs java.util.logging'e bir göz atın
Birinci Soru: Log4j'nin JUL'un SMTPHandler, NTEventLogHandler veya çok uygun FileHandlers gibi sahip olmadığı akıllı işleyicilerine ihtiyaç duyduğunu düşünüyor musunuz?
Soru İki: Kendinize günlük çıktınızın biçimini sık sık değiştirmek istediğinizi görüyor musunuz? Bunu yapmak için kolay ve esnek bir yola ihtiyacınız olacak mı? Başka bir deyişle, Log4j's PatternLayout'a ihtiyacınız var mı?
Soru Üç: Bir üretim ortamında derlendikten ve dağıtıldıktan sonra, uygulamalarınızdaki karmaşık günlük yapılandırmalarını değiştirme yeteneğine kesin bir ihtiyaç öngörüyor musunuz? Konfigürasyonunuz şöyle geliyor mu? "Bu sınıftan gelen şiddetli mesajlar destek adamına e-posta ile gönderilir; sınıfların bir alt kümesinden gelen ciddi mesajlar sunucumuzdaki bir sistem günlüğüne kaydedilir; sınıfların başka bir alt kümesinden uyarı mesajları kaydedilir ağ sürücüsü A'daki bir dosyaya ve ardından her yerden gelen tüm iletiler ağ sürücüsü B'deki bir dosyaya kaydedilir ". Ve kendinizi her iki günde bir ayarlarken görüyor musunuz?
Yukarıdaki sorulardan herhangi birine evet yanıtı verebiliyorsanız, Log4j ile devam edin. Hepsine kesin bir hayır cevabı verirseniz, JUL yeterli olandan daha fazla olacaktır ve SDK'ya zaten dahil edilmiştir.
Bununla birlikte, bu günlerde hemen hemen her proje, sadece başka bir kütüphanenin kullandığı için log4j dahil olmak üzere kuruyor gibi görünüyor.
Java için Basit Günlüğe Kaydetme Cephe (SLF4J) kullanmanızı öneririz . Log4J içeren farklı sağlayıcıları destekler ve Apache Commons Logging'in yerine kullanılabilir.
Log4j uzun zamandır var ve çok iyi çalışıyor. Bunu destekleyecek hiçbir bilimsel çalışmam yok, ancak çok sayıda müşteride gördüklerime dayanarak, diğerlerinden daha fazla kullanıldığını gördüğüm günlük kaydı çerçevesi kolayca. Uzun zamandır var ve yerini bir şey söyleyen Next Big Logging Framework ile değiştirmedim.
Kurulumu son derece basittir ve temel ekleyicileri (çıktılar) öğrenmesi kolaydır. Aşağıdakiler de dahil olmak üzere, mevcut tüm ana bilgisayar ekleyicileri vardır:
Artı diğerleri. Kendi ekinizi yazmak da zor değil. Buna ek olarak, her bir ekte, günlüğünüzde özellikle çıktıyı kontrol etmenizi sağlayan çok fazla esneklik vardır.
Bir not, log4j'ye ek olarak günlüğe kaydetme apache commons kullandığımda bir dizi classloader problemim vardı. Yalnızca belirli bir uygulama içindi, ancak ortak günlük kaydı gibi bir soyutlama katmanı kullanırken sunulan esnekliğe sahip olmak yerine, log4j'yi tek başına kullanmayı daha basit buldum.
Daha fazla ayrıntı için bu makaleye bakın :
İyi şanslar!
java.util.logging, diğerlerinin sağladığı fazla bagaj olmadan kapsamlı bir kayıt paketi sunar.
log4j genel olarak çok daha güzel bir paket ve java.util.logging'in içerdiği bazı hıçkırıklara sahip değil. Log4j'yi doğrudan kullanmanın ortak günlük kaydını kullanmaktan daha kolay olduğunu düşünüyorum.
Günlük arabiriminiz olarak Apache Commmons Günlük Kaydı'nı kullanmanızı öneririm . Bu şekilde, sonda herhangi bir kod değişikliği gerektirmeden günlük uygulamalarını istediğiniz zaman değiştirme esnekliğine sahip olursunuz.