Попытка создать «общее» решение для ведения журнала для запросов в Spring Boot

#spring #spring-boot #logging #logback #interceptor

#spring #spring-boot #ведение журнала #обратный вход #перехватчик

Вопрос:

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

Я решил начать идею с использования аннотации Spring @Aspect, но использовать ее — не лучшая идея, потому что мне пришлось бы создавать один аспект для каждого контроллера, который у меня есть.

После некоторого копания я нашел 2 возможных пути решения, над которыми я мог бы попытаться поработать: @ControllerAdvice и создание перехватчика (что теоретически является единственной идеей, которая, как я думаю, имеет наибольшие шансы на успех и является чистым решением).

Проблема в том, что я не могу найти много информации об этих идеях.

Для идеи @ControllerAdvice я обнаружил, что она используется только для обработки исключений, а для идеи перехватчика я не нахожу ничего похожего на то, что я хочу создать.

Осуществимы ли эти идеи вообще? Или я должен просто придерживаться регистрации всего на уровне контроллера?

Не уверен, важно ли это, но в настоящее время я работаю с использованием библиотеки обратного входа.

Комментарии:

1. Посмотрите здесь на решение перехватчика: baeldung.com/spring-mvc-handlerinterceptor

Ответ №1:

Существует готовое решение для полного ведения журнала запросов и ответов для различных клиентских и серверных технологий. Я использую инструмент logbook для отслеживания информации о запросе-ответе для моих конечных точек rest.

https://github.com/zalando/logbook