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