SmartMVC
Все документы
Руководство
Возможности
Аутентификация
Пример
Справочник
  • 简体中文
  • English
  • 日本語
  • Русский
GitHub
Все документы
Руководство
Возможности
Аутентификация
Пример
Справочник
  • 简体中文
  • English
  • 日本語
  • Русский
GitHub
  • Основные возможности

    • Единый формат ответа
    • Исключения и проверка параметров
    • Дата и время
    • Журнал запросов

Журнал запросов

Краткая запись о запросе помогает быстро ответить на три вопроса: какой метод API вызвали, какой статус он вернул и сколько времени заняла обработка.

Вывод по умолчанию

INFO  com.example.OrderController : HTTP GET /orders/1001 -> 200 (18 ms)

Запись содержит:

  • HTTP-метод;
  • URI запроса и строку параметров;
  • итоговый HTTP-статус;
  • длительность в миллисекундах.

Почему категорией логгера служит контроллер

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

Поэтому уровень можно настроить отдельно для конкретного контроллера:

logging:
  level:
    com.example.OrderController: DEBUG

Если Spring выбрал обработчик, который не является методом контроллера, например обработчик статических ресурсов, SmartMVC использует класс этого обработчика как категорию логгера. Резервная категория ink.icoding.mvc.request применяется только тогда, когда у запроса вообще нет сопоставленного обработчика.

Граница между синхронными и асинхронными запросами

Для обычного синхронного Servlet-запроса записанные статус и длительность относятся к окончательному результату обработки запроса.

При асинхронной обработке Spring MVC через Callable, DeferredResult, WebAsyncTask или StreamingResponseBody текущий фильтр пишет запись, когда завершается первоначальный Servlet dispatch. Поэтому статус и длительность могут не отражать фактическое завершение асинхронной задачи или потока. Если нужны измерения до момента полного завершения, используйте AsyncListener или отдельный компонент наблюдаемости для асинхронных запросов.

Уровень журналирования SmartMVC

spring:
  smart:
    mvc:
      request-log:
        enabled: true
        level: INFO

Поддерживаются TRACE, DEBUG, INFO, WARN и ERROR. Значение по умолчанию — INFO.

Чувствительные данные

Стандартная итоговая запись не содержит:

  • заголовки запроса;
  • тело запроса;
  • тело ответа;
  • бизнес-объект, возвращённый контроллером.

Однако в неё входит исходная строка параметров. Не передавайте пароли, токены, номера документов и другие чувствительные значения в URL: URL может сохраняться веб-сервером, прокси и платформой журналирования.

Для бизнес-аудита читайте CurrentAuth в бизнес-слое и записывайте только необходимые, предварительно обезличенные данные.

Отключение журнала запросов

spring.smart.mvc.request-log.enabled: false

После отключения фильтр журналирования запросов не регистрируется.

Изменить эту страницу на GitHub
Последнее обновление: 07.08.2026, 08:33
Назад
Дата и время
Далее
Аутентификация и авторизация