Yeni bir proje ile başlıyorum ve günlüğe kaydetme hakkında bazı şeyler yaptım. Hep günlüğü yapılır gösterdiği her sınıf, kendi statik Logger sahip olduğu desen kullandı:Java Günlüğü - Sarıcı?
private static final Logger logger = Logger.getLogger(LoggingInterceptor.class);
I do not gerçekten ben bir şey oturum olacak her sınıfa bu satırı kopyalamak zorunda olduğu bu yaklaşım gibi . Log sınıfının, oturum açmanın statik yöntemleriyle olduğu Android yaklaşımını kullanmayı düşündüm. Başkaları tarafından yapılan benzer bir yaklaşım için internette araştırmaya başladım, ama hiçbir şey bulamadım. Bu yüzden sorum şu: Bu yaklaşımın ne gibi dezavantajları olabilirdi?
DRY modelini izledikçe, bazı avantajlardan ziyade, hiçbirini düşünemiyorum. Farklı kategoriler, Android'de olduğu gibi, statik Günlük yöntemlerinin parametreleri olan "etiketler" ile ele alınabilir. Örneğin:
Log.debug(tag, message, exception);
Günlüğü sınıfı kendisi daha sonra Log4j hatta SLF4J olarak ortak bir Günlüğü Framework kullanmak.
Görüşlerinizle ilgileniyorum. java.util.logging.Logger API ve this article dayanarak
FWIW, Oynatma çerçevesi 2 benzer bir yaklaşım kullanır. – smk
"[...] DRY desenini takip ediyor"? Au contraire! Önerilen yaklaşımınız, her zaman bir etiket belirtmenizi zorlarken, statik bir son değişkende sınıf (veya kategori) için bir günlükçünün alınması yalnızca bir kez belirtir. Kategoriyi değiştirmeye ne zaman karar verirsiniz? – Seelenvirtuose
Evet, bu bir nokta olabilir. Peki ya başka bir etiket için bir açıklama yaparsanız? Etiketlerin sadece kütüğün yerleştirildiği sınıfı değil, sistemin bir alt sistemini belirtmek için kullanıldığını dikkate alarak. Bu nedenle, birden fazla sınıfta yapılan bazı alt sistem günlüklerini paketlemek isteyebilirsiniz. – homedom