我的应用程序在 Jetty8 中运行,并利用了 Logback 的 RequestLogImpl(顺便说一句,这很棒)。最近我们发现,如果 logback 在文件滚动时出现问题,会提醒我们的日志消息将无处显示,因为我们没有配置 Jetty 将其 stderrout 重定向到任何日志文件。我当前的版本纠正了这个问题,但现在我注意到码头 stderrout 文件中来自 logback 的大量 INFO 消息,例如
06:32:14,893 |-INFO in c.q.l.co.rolling.helper.RenameUtil - Renaming file [/data/logs/md-stage-app4.dev.mgg.request.3.log] to [/data/logs/md-stage-app4.dev.mgg.request.4.log]
我只在重命名失败或其他情况下才真正关心这些消息,这些消息以 WARN 的形式出现。我怎样才能让 logback 的东西只在 WARN 及以上登录到码头 stderrout 日志文件?
我的应用程序本身确实是 <root level="info"> 根记录器。
etc/jetty.xml 有以下摘录:
<!-- Logback Access Log implementation -->
<Ref id="RequestLog">
<Set name="requestLog">
<New id="requestLogImpl" class="ch.qos.logback.access.jetty.RequestLogImpl">
<Set name="fileName">etc/logbackAccess.xml</Set>
</New>
</Set>
</Ref>
etc/logbackAccess.xml 是:
<configuration>
<!-- always a good activate OnConsoleStatusListener -->
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<appender name="SIZE_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>/data/logs/md-app3.request.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>/data/logs/md-app3.request.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>1MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%h %l %u [%t] "%r" %s %b%n%fullRequest%n</pattern>
</encoder>
</appender>
<appender-ref ref="SIZE_ROLLING" />
</configuration>