Чтобы включить регистрацию различных полей в журнале доступа Tomcat, уже существует определенный шаблон.

Вот некоторые из наиболее часто используемых:

  • %a — удаленный IP-адрес
  • %A — локальный IP-адрес
  • %b — отправлено байтов, исключая заголовки HTTP, или «-», если ноль
  • %B — отправлено байтов, исключая заголовки HTTP.
  • %h — имя удаленного хоста (или IP-адрес, если enableLookups для коннектора имеет значение false).
  • %H — протокол запроса
  • %l — удаленное логическое имя пользователя из identd (всегда возвращает «-»).
  • %m — метод запроса (GET, POST и т. д.)
  • %p — локальный порт, на который был получен этот запрос. См. также %{xxx}p ниже.
  • %q — строка запроса (с префиксом «?», если она существует)
  • %r — первая строка запроса (метод и URI запроса).
  • %s — код состояния HTTP ответа.
  • %S — идентификатор сеанса пользователя.
  • %t — дата и время в общем формате журнала.
  • %u — удаленный пользователь, прошедший аутентификацию (если есть), иначе «-»
  • %U — запрошенный URL-адрес
  • %v — Имя локального сервера
  • %D — время, затраченное на обработку запроса, в миллисекундах.
  • %T — время, затраченное на обработку запроса, в секундах.
  • %F — время, затраченное на фиксацию ответа, в миллисекундах.
  • %I — Текущее имя потока запроса (позже можно сравнить с трассировкой стека)

Чтобы узнать больше об этих шаблонах, следуйте этой документации, предоставленной Apache Software Foundation.



Вышеупомянутый шаблон может регистрировать некоторые необходимые поля, но если мы хотим регистрировать время поступления запроса специально для этого, у нас также может быть несколько дополнительных опций.

  • begin или префикс begin: выбирает время начала запроса
  • end или префикс end: выбирает время окончания ответа

Пример:

%{end:yyyy-MM-dd HH:mm:ss:SSS}t
%{begin:yyyy-MM-dd HH:mm:ss:SSS}t

Примечание. Все форматы, поддерживаемые SimpleDateFormat, разрешены в %{xxx}t.

Приведенный выше шаблон будет регистрировать только время начала, когда tomcat начал обрабатывать запрос.

Если вы нажмете 100 запросов с коэффициентом параллелизма равным 1, мы увидим, что каждый запрос будет регистрировать разное время начала запроса. но в идеале должно быть одинаково, потому что все запросы мы отправили одновременно.

Следовательно, это зарегистрированное время не даст правильной информации. на это нельзя полагаться.

[Бонусный балл]

Журнал шаблонов %D за все время, затраченное на запрос. минус это время от времени окончания запроса, и вы получите правильное время поступления запроса.

Чтобы включить ведение журнала в приложении весенней загрузки https://www.baeldung.com/spring-boot-embedded-tomcat-logs