2016-06-27 27 views
5

Bir sınıftan bir logger olsun ve bunun gibi günlük kaydı düzeyini yapılandırabilirsiniz: Ben log4j 2 ile aynı şeyi nasılKaydedici Log4J 2 ile Programatik Olarak Yapılandırma? SLF4J ile

private static Logger logger = (Logger) LoggerFactory.getLogger(SomeClass.class.getName()); 
logger.setLevel(Level.TRACE); 

?

+1

Log4j2'nin belgeleri ne diyor? –

cevap

4

Öncelikle setLevel için destek SLF4J tarafından sağlanan DEĞİLDİR - SLF4J Kaydedici arayüzü setLevel yok yöntem. Bir API olarak, SLF4J, bir günlük uygulamasının yapılandırmayı nasıl gerçekleştirdiği hakkında kesinlikle bilgi sahibi değildir.

Örnek kodunuza bakarsanız, dökümanı Logger'a gönderirsiniz - bu bir ch.qos.logback.classic.Logger'dir, bu, bunu yaptığınızda Logback'e bağlı olduğunuz anlamına gelir.

Gary'nin cevabı doğrudur ve Log4j 2 ile Logback arasındaki temel farklardan birini vurgular. LogbackFactory'den, LogbackFactory'den aldığınız Logger logosuna sıkı bir şekilde bağlanır. Log4j ile, uygulamanın elde ettiği Kaydedicilerden tamamen ayrı olan konfigürasyondaki seviyeyi değiştiriyorsunuz.