默认情况下,Jetty不会记录任何级别高于WARN的内容,这不适用于OutOfMemory错误等致命错误。 (大多数企业操作监控团队在日志中查找ERROR,而不是WARN。)
如何安排日志记录,以便在ERROR级别报告这些致命错误?
答案 0 :(得分:1)
我发现可以使用ch.qos.logback.classic.turbo.TurboFilter配置logback来调整日志记录
以下是Scala中的一个示例,它将org.eclipse.jetty记录器的所有WARN转换为ERROR:
import ch.qos.logback.classic.{Level, Logger}
import ch.qos.logback.classic.turbo.TurboFilter
import ch.qos.logback.core.spi.FilterReply
import org.slf4j.{LoggerFactory, Marker}
/**
* Lift the log level of all WARN events to ERROR as Jetty will not
* log anything above WARN level.
*/
class JettyShoutyFilter extends TurboFilter {
val myLogger = LoggerFactory.getLogger(getClass)
override def decide(marker: Marker, logger: Logger, level: Level, format: String, params: Array[AnyRef], t: Throwable): FilterReply = {
if (isStarted && logger.getName.startsWith("org.eclipse.jetty") && level == Level.WARN && format != null) {
logger.error(marker, format, params)
FilterReply.DENY
} else FilterReply.NEUTRAL
}
}
将记录器添加到配置中:
<configuration>
<turboFilter class="JettyShoutyFilter"/>
...