Как включить регистрацию времени ответа в Jetty 7

Apache и Tomcat позволяют легко регистрировать время ответа в журнале доступа к серверу (с шаблоном %D), но я не смог найти эквивалентной поддержки в Jetty, либо сNCSARequestLog или с помощью logback-access (моя предпочтительная настройка ведения журнала).

есть ли способ получить причал, чтобы войти в это время? Я видел, что можно использовать пользовательский обработчик для сбора этой информации и сделать ее доступной обработчику ведения журнала, но я надеюсь что-то вроде StatisticsHandler может сделать это для меня, поскольку он явно уже отслеживает эту информацию для создания своей совокупной статистики.

3 ответов


вызов setLogLatency(true) on NCSARequestLog


хорошее подробное объяснение того, как включить регистрацию времени ответа через конфигурацию, находится здесь: мониторинг задержки в журнале запросов причала

резюме:

открыть [JETTY HOME] / etc / jetty.XML.

найдите раздел .

добавить имя набора= "logLatency" >true в список сеттеров.

сохраните его и перезапустите причал.


используя logback access 1.1.0 или более поздней версии, вы можете использовать %elapsedTime conversion word, чтобы получить время ответа в МС. От https://logback.qos.ch/manual/layouts.html:

D / elapsedTime      The time taken to serve the request, in milliseconds.
T / elapsedSeconds   The time taken to serve the request, in seconds.

например, через:

<pattern>%h %l %u [%t] "%r" %s %b "%i{Referer}" "%i{User-Agent}" %elapsedTime{}ms</pattern>

вывод:

0:0:0:0:0:0:0:1 - - [03/Jun/2018:08:07:12 +1200] "GET /actuator/health HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36" 3ms