2015-06-30 16 views

cevap

5

Log4j.properties'inizi jar dosyanızın dışına koymanız daha kolay olacaktır çünkü bunu değiştirmek daha kolay olacaktır. Uygulama yapılandırmayı yeniden yüklemeyi zorlamazsa (bunu yapabilirsiniz) daha sonra basit bir yeniden başlatma yapılandırmayı yükler (bir kavanoz dosyası içinde değiştirilirken genellikle bir yeniden oluşturma anlamına gelir). Uygulama, nasıl yeniden yükleneceğini biliyorsa, değişiklikleriniz neredeyse anında uygulanacaktır. Bu, üretim ortamında uygulamanız olduğunda ve daha fazla bilgi almak için (ancak daha kötüsü, yeniden oluşturma) uygulamayı durdurmamak için bir günlük ayarı (günlük düzeyi gibi) değiştirmek istediğinizde çok önemlidir.

+0

Tüm bunlar doğrudur ve uygulama dağıtımları için de geçerlidir. * Kütüphane * projesine dahil edilmemesinin başka nedenleri vardır - yani, nerede kullanılacağı bağlamı ve sınıf yolunu etkileyen konfigürasyonu genellikle bilmeyerek olası sorunlara neden olabilirsiniz. – eis

+0

Bir hata sırasında bir sunucuda hata ayıklamayı etkinleştirme olanağı bir cankurtaran. Test ettiğimiz kadarıyla, hala sadece test etmeyi düşündüğümüz konulara karşı koruyoruz. Neler olup bittiğine dair daha fazla ayrıntı elde etme yeteneği, ileriye doğru daha iyi testlere doğrudan beslenir. – Gus

1

Hayır, yalnızca bir kütüphane ise, src/main/resources numaranıza log4j.properties kodunu dahil etmem. - insanlar kitaplığınızı kullanacak ve insanlar bunun nasıl kaydedileceğini yapılandırmak zorunda kalacaklar.

Fakat başka bir sorun daha var: bunu kavanozunuza koyarsanız, diğerleri de class4j'lerini kendi sınıf yollarına yerleştirir. Yani, eğer log4j için özel bir yapılandırmaya sahip olmak isterlerse (ki bunu yapacaklar), ClassLoader bulabildiği ilk dosyayı seçecektir.

Ayrıca, bir kütüphaneniz varsa, bunun yerine slf4j'u kullanmanızı öneririm, böylece kullanıcılarınız favori günlüklerini seçebilir.

Açıklamaları denemek için, log4j'yi src/test/resources'a eklemek tamam değildir.

+1

OP'nin Maven'i kullanmayla ilgili hiçbir şeyden bahsetmediğini düşünüyorum. src/main/resources ve src/test/resources Maven kavramlarıdır. Bunun dışında katılıyorum. – eis

İlgili konular