2017-01-20 10 views
0

По умолчанию Jetty не регистрирует ничего с уровнем выше WARN, что неуместно для фатальных ошибок, таких как ошибки OutOfMemory. (Большинство команд мониторинга операционных систем ищут ОШИБКИ в журналах, а не WARN.)Изменение встроенного уровня журнала Jetty для фатальных ошибок

Как организовать регистрацию, чтобы эти фатальные ошибки сообщались на уровне ERROR?

ответ

0

Я обнаружил, что можно настроить Logback для настройки протоколирования с использованием ch.qos.logback.classic.turbo.TurboFilter

Вот пример, в Scala, который преобразует все WARN в ОШИБКИ для org.eclipse .jetty регистраторы:

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"/> 
    ...