如何禁用jetty9日志记录?

时间:2012-12-16 00:49:23

标签: logging jetty slf4j

我正在使用嵌入式Jetty 9,路径中有slf4j.jar。默认情况下,jetty会记录大量信息。

我想禁用日志记录,或者至少将日志级别更改为INFO。如何在程序中执行此操作(即,不添加一些xml配置文件)?

1 个答案:

答案 0 :(得分:12)

使用直接slf4j无法设置Logger级别,因为slf4j只是一个日志外观/路由API。

您需要依赖底层日志记录实现来设置命名空间“org.eclipse.jetty”的日志记录级别 如:

  • 如果使用slf4j-simple.jar和SimpleLogger,则只能在初始化SimpleLogger时通过系统属性以编程方式设置级别,这在JVM的早期阶段。

  • 如果使用slf4j-log4j.jar,请使用Log4j specific techniques

org.apache.log4j.LogManager.getLogger("org.eclipse.jetty").setLevel(Level.WARN);
  • 如果使用slf4j-jdk14.jar,请使用java.util.logging技术。
java.util.logging.LoggerFactory.getLogger("org.eclipse.jetty").setLevel(Level.WARNING);
  • 如果使用logback.jar,请将slf4j Logger转换为logback Logger,然后设置Level。
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);