我的应用程序在Jetty8中运行,并利用了Logback的RequestLogImpl (顺便说一句,这很棒)。最近我们发现,如果logback在滚动文件时出现问题,本应提醒我们的日志消息不会出现,因为我们没有将Jetty配置为将其stderrout重定向到任何日志文件。我的当前版本纠正了这个问题,但现在我注意到jetty 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]我只关心重命名失败或其他情况下的这些消息,这些消息会以警告的形式出现。如何让logback内容只在WARN和更高级别上登录到jetty stderrout日志文件中?
实际上,我的应用程序本身就是根记录器。
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>发布于 2013-05-04 16:59:50
打印状态消息是因为下面的行
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />在logback-access.xml中(在本例中为etc/logbackAccess.xml)。通过采用OnConsoleStatusListener和OnPrintStreamStatusListenerBase,您应该能够创建一个自定义的StatusListener,它打印除源自RenameUtil的INFO消息之外的状态消息。
https://stackoverflow.com/questions/16366949
复制相似问题