我正在使用嵌入式Jetty 9,路径中有slf4j.jar。默认情况下,jetty会记录大量信息。
我想禁用日志记录,或者至少将日志级别更改为INFO。如何在程序中执行此操作(即,不添加一些xml配置文件)?
答案 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);
java.util.logging.LoggerFactory.getLogger("org.eclipse.jetty").setLevel(Level.WARNING);
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);