2016-04-14 10 views
0

Log4j kullanan tek bir projem vardı.Java - özel LogManager'ı Logger.getLogger() 'dan başka kavanozdan alın?

Ama projecimi ikiye ayırmak zorunda kaldım ... Bu yüzden ilk olan "çekirdek" olanı, diğeri de uygulamanın kendisidir.

Özel LogManager'ım hala "app-project" aşamasındadır, ancak LogManager'ımı kullanarak "core-project" içinde neler olup bittiğini günlüğe kaydetmem gerekiyor.

Kitaplığımdan (core.jar) özel log4j'ime her şeyi günlüğe kaydetmek istiyorum.

Bu işi nasıl yapabilirim? Bu şekilde çalışır mı? Yoksa özel LogManager'ımı çekirdek projeye mi taşımalıyım? Evetse, uygulama günlüğümü core.jar dosyasının LogManager'ında nasıl yapabilirim?

Daha net anlamak eğer bilmiyorum ... Burada bir çizim var: Benim çekirdek, ben sadece yapıyorum an için

My goal

(java.util.logging):

Logger.getLogger(this.getClass().getName()).log(Level.INFO, "This is a log message"); 

bilmek yararlıdır olmadığını bilmiyorum, ama ben böyle slf4j.Logger + log4j (olarak benim LogManager sınıfında, programlı benim log4j özelliklerini ayarlıyorum)

public class LogManager{ 
    private LogManager(){ 
     //I set it here 
    } 
} 

Teşekkürler!

+0

Bu 'Logger' nedir? Bu java.util.logging bir mi yoksa log4j mi? – markspace

+0

Çekirdek projesinde, java.util.logging var! Düzenlenen! – anthomaxcool

cevap

0

Günlük yöneticisini almak için java.util.logging.Logger kullanıyorsanız, varsayılan sistem yöneticisini, o sistem özelliğine göre adlandırılan sınıfla değiştirecek olan bir sistem özelliği vardır, java.util.logging.manager.

Belgeleme: Elbette https://docs.oracle.com/javase/8/docs/api/java/util/logging/LogManager.html

yeni günlük yöneticisi sınıfı bulunan diğer Kavanoz dosyasına ayarlı sınıf yolunu gerekir.

+0

Cevabınız için teşekkürler! Ama ben java.util.logging.config 'erişemiyorum? Java.util.logging.MemoryHandler.target' aynı şeyi yapar mı? Ona LogManager sınıfımın yolunu verirsem? – anthomaxcool

+0

Peki, yeni günlük yöneticisi sınıfınız bununla başa çıkmak zorunda kalacaktı. Yapılandırma dosyasını aramak ve işleyicileri içeriğine göre başlatmak için kod yazın. – markspace

+0

Oh Anladım! Herhangi bir yapılandırma dosyası yok .. yardımcı olabilir! Yardımın için teşekkürler, neler yapabileceğimi göreceğim! – anthomaxcool

İlgili konular