В разработке микросервисов логирование — это очень простая задача: запись информации о запросах журналов интерфейса, что помогает нам выявлять проблемы и воспроизводить их. Содержимое журнала включает ссылку, метод запроса, useragent, заголовок, IP текущего микросервисного узла, имя машины узла, рабочую среду, IP запросчика, потребление времени и другую информацию.
Используя блокировщик фильтров фреймворка Spring Cloud, вы можете перехватить записи информации о запросах всех интерфейсов и сохранить записи запросов в MongoDB.
Структура логарифма интерфейса
Сначала создаём новый объект и определяем структуру логарифма, код выглядит следующим образом:
Логарифмический фильтр
Создайте новый фильтр RequestLoggerFilter, унаследуйте интерфейс Filter и реализуйте метод doFilter, этот фильтр имеет самый высокий приоритет, и приоритет фильтра можно задать через @Order аннотации.Фильтры регистрируют коммиты POST/PUT (исключая многочастные/файлы формы-данные), код следующий:
Логи сохраняются в MongoDB
Чтобы не мешать обычному использованию интерфейса, журнал интерфейса помещается в очередь с безопасной для потоков, программа открывает поток, поток поглощает данные в очереди, хранит данные в MongoDB и использует maven для введения зависимостей.
Для получения дополнительной информации о mongodb см. org.springframework.boot.autoconfigure.mongo.MongoProperties
application.yml Конфигурация следующая:
Формат URI: имя пользователя: root, пароль: aaaaaaaaa, адрес базы данных: 127.0.0.1, номер порта: 27017, имя базы данных: test Например: mongodb://root:aaaaaa@127.0.0.1:27017/test
ЕслиИмя пользователя или пароль содержит специальный символ, поэтому используйте кодировку URL, иначе будет сообщено об ошибке!
Вызовите MongoTemplate, чтобы сохранить данные в базе данных следующим кодом:
(Конец)
|