logging - 如何以编程方式禁用Jetty 9日志记录?

标签 logging jetty slf4j

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

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

最佳答案

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

您将需要依赖基础的日志记录实现来在 namespace “org.eclipse.jetty”上设置日志记录级别。
如:

  • 如果使用slf4j-simple.jar和SimpleLogger,则您不能以编程方式设置级别,只能在初始化SimpleLogger后通过System属性(这在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);
    

    关于logging - 如何以编程方式禁用Jetty 9日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13897597/

    相关文章:

    java - 如何使用 Java8s lambdas 改进日志记录机制

    java - 使用 Jetty 独占绑定(bind)到端口

    java - 防止第 3 方警告使日志文件困惑

    java - log4j:无法按分钟创建日志文件

    python - Django如何关闭警告

    apache - 从 Apache 日志中排序 uniq IP 地址

    linux - 如何使用别名来grep日志文件的尾部?

    java - 安卓 : Access raw resource as a File or a jetty Resource.

    java - jetty servlet 将 uri 映射到文件

    java - 多个功能是 logback 标记的良好用例吗?