代码之家  ›  专栏  ›  技术社区  ›  trojanfoe

Jetty 6总是生成调试日志?

  •  0
  • trojanfoe  · 技术社区  · 14 年前

    我使用Jetty6.1.24开发Web服务,我的代码使用SLF4J,和Jetty一样,日志记录工作正常。不过,我想做的是从我的代码中获取调试日志记录 但不是从码头来的 (太冗长了),但我无法阻止它记录调试信息。系统属性可以设置调试模式(-ddebug),但不能取消设置调试模式。

    我的日志级别由开始脚本通过设置系统属性“log level”来设置,这反过来又在我的resources/logback.xml中设置:

    <configuration>
      <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
          <Pattern>%d [%thread] %level %logger - %m%n</Pattern>
        </layout>
      </appender>
      <root level="${loglevel:-INFO}">
        <appender-ref ref="CONSOLE"/>
      </root>
    </configuration>
    

    Jetty要么总是生成调试日志,如果未启用调试,则日志程序会忽略这些日志,要么使用logger.isDebugEnabled()设置其调试模式。有人对如何使这个工作有什么想法吗?

    3 回复  |  直到 13 年前
        1
  •  4
  •   Valentino Miazzo    13 年前

    在把slf4j的jar放在jetty/lib/ext之后,我也遇到了同样的问题。
    我通过将这个logback.xml文件放在jetty/resources中解决了这个问题。

    <configuration>
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level - %msg%n</pattern>
        </encoder>
      </appender>
      <root level="info">
        <appender-ref ref="STDOUT" />
      </root>
    </configuration>
    

    注意“level=”info“。

    解释 :
    在这个配置中,Jetty使用slf4jlog作为记录器实现。
    slf4jlog反过来委托logback的实现。
    logback.xml告诉您要记录日志级别并使用stdout。
    除了可以通过logback.xml配置日志记录级别外,这里还提供了标准的jetty行为。
    与默认配置一样,如果需要,可以使用jetty-logging.xml。
    当然,您可以绕过jetty的打印流并使用logback的附加器。
    下面是使用jetty-logging.xml时的流程:

    SomeClass --> Slf4JLog --> ConsoleAppender--> STDOUT --> RolloverFileOutputStream
     (Jetty)      (Jetty)         (Logback)        (OS)           (Jetty)
    


    修订 :
    Jetty 7.2.2
    SLF4J1.1.1
    回溯0.926

        2
  •  1
  •   Tim    14 年前

    这个 -DDEBUG 仅当使用stderr记录器时才使用选项。如果设置为使用slf4j日志(例如,您已将slf4j添加到类路径中),那么所有配置都将通过slf4j实现进行处理,系统属性将被忽略。

    您要做的是将logback配置为关闭jetty日志类别上的调试。

    类似的东西 <logger name="org.mortbay.log" level="INFO" />

        3
  •  0
  •   Romain Hippeau    14 年前

    有关如何控制日志记录,请参见以下内容: http://docs.codehaus.org/display/JETTY/Debugging