W rozwoju mikroserwisów logowanie jest bardzo podstawowym zadaniem – rejestrowaniem informacji o logach żądań interfejsu, co pomaga nam rozwiązywać problemy i odtwarzać je. Treść logu obejmuje link, metodę żądania, useragenta, nagłówek, aktualny adres IP maszyny mikroserwisowej węzła, nazwę maszyny węzła, środowisko działające, adres IP żądającego, zużycie czasu oraz inne informacje.
Korzystając z blokera filtrów frameworku Spring Cloud, możesz przechwytywać rekordy informacji o żądaniach wszystkich interfejsów i utrzymywać rekordy żądań w MongoDB.
Struktura logów interfejsu
Najpierw stwórz nowy obiekt i zdefiniuj strukturę logu, a kod wygląda następująco:
Filtr logarytmiczny
Stwórz nowy filtr RequestLoggerFilter, odziedzicz interfejs Filter i zaimplementuj metodę doFilter, ten filtr ma najwyższy priorytet, a priorytet filtra można ustawić za pomocą adnotacji @Order.Filtruje rejestry commitów POST/PUT (z wyłączeniem rekordów zatwierdzeń plików wieloczęściowych/form-data), kod jest następujący:
Logi pozostają w MongoDB
Aby nie wpływać na normalne korzystanie z interfejsu, log interfejsu zostanie wrzucony do kolejki wątkowej, program otworzy wątek, wątek zużywa dane w kolejce, zapisuje je w MongoDB i używa maven do wprowadzania zależności.
Więcej informacji o mongodb można znaleźć na org.springframework.boot.autoconfigure.mongo.MongoProperties
application.yml Konfiguracja wygląda następująco:
Format URI: nazwa użytkownika: root, hasło: aaaaaaaa, adres bazy danych: 127.0.0.1, numer portu: 27017, nazwa bazy danych: test Na przykład: mongodb://root:aaaaaa@127.0.0.1:27017/test
JeśliNazwa użytkownika lub hasło zawiera specjalny symbol, więc użyj kodowania URL, w przeciwnym razie zostanie zgłoszony błąd!
Zadzwoń do MongoTemplate, aby utrwalić dane w bazie danych z następującym kodem:
(Koniec)
|