2012-12-16 17 views
6

Katıştırılmış Jetty 9'u, yolunda slf4j.jar ile kullanıyorum. Varsayılan olarak, jetty tonlarca bilgiyi kaydeder.Jetty 9 günlük programlamayı nasıl devre dışı bırakabilirim?

Günlük kaydını devre dışı bırakmak veya en azından günlük seviyesini INFO olarak değiştirmek istiyorum. Bunu programda nasıl yapabilirim (yani, bazı xml yapılandırma dosyalarını koymadan)?

+0

Neden XML/properties dosyalarından kaçınıyorsunuz? Günlük seviyelerini değiştirmek için doğru yollardır. Bunun için programlama yaklaşımı kötü çünkü günlük seviyesini değiştirmek için yeniden derlemeniz gerekecek !!!!! – SSR

+0

Kullanıcının bir GUI veya TUI aracılığıyla kendi seviyesini değiştirmesi için bir yöntem uygulamıyorsanız? Bunu nasıl kullanacaklarını bilmiyorsanız, programcının ne yapması gerektiğini bir şekilde veya başka bir şekilde söyleyemezsiniz. – Fallso

cevap

12

slf4j sadece bir günlük cephe/yönlendirme API'sı olduğundan, Logger düzeyini ayarlamak için düz slf4j'yi kullanmanın bir yolu yoktur.

Sen ad "org.eclipse.jetty" Mesela üzerinde kaydı düzeyini ayarlamak için temel günlük uygulanması güvenmek gerekir: slf4j-simple.jar kullanılıyorsa

  • ve SimpleLogger, daha sonra programlı olarak, sadece SimpleLogger başlatıldıktan sonra, JVM'de çok erken olan Sistem özellikleri ile ayarlanamaz.

  • slf4j-log4j.jar kullanılıyorsa, Log4j specific techniques'u kullanın.

org.apache.log4j.LogManager.getLogger("org.eclipse.jetty").setLevel(Level.WARN); 
  • slf4j-jdk14.jar kullanılarak java.util.logging teknikleri kullanın.
    java.util.logging.LoggerFactory.getLogger("org.eclipse.jetty").setLevel(Level.WARNING); 
    
    logback.jar kullanılıyorsa
  • , logback Logger için slf4j Logger döküm ve sonra Seviye ayarlayın.
final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("org.eclipse.jetty"); 
if (!(logger instanceof ch.qos.logback.classic.Logger)) { 
    return; 
} 
ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) logger; 
logbackLogger.setLevel(ch.qos.logback.classic.Level.WARN); 
İlgili konular