In microservice-ontwikkeling is logging een zeer eenvoudige taak, waarbij logggegevens van interfaceverzoeken worden vastgelegd, wat ons helpt problemen op te lossen en problemen te reproduceren. De loginhoud bevat de link, verzoekmethode, useragent, header, het huidige microservice-nodemachine-IP, de naam van de knooppuntmachine, de uitvoeringsomgeving, het aanvraag-IP, tijdsverbruik en andere informatie.
Met behulp van de Filter Blocker van het Spring Cloud-framework kun je de verzoekinformatierecords van alle interfaces onderscheppen en de verzoekrecords in MongoDB behouden.
Interface-logstructuur
Maak eerst een nieuw object aan en definieer de structuur van het logboek; de code is als volgt:
Logfilter
Maak een nieuw RequestLoggerFilter-filter aan, erf de filterinterface en implementeer de doFilter-methode; dit filter heeft de hoogste prioriteit en de filterprioriteit kan worden ingesteld via de @Order annotatie.Filtert log POST/PUT commits (exclusief multipart/form-data file commitrecords), de code is als volgt:
Logs blijven in MongoDB
Om het normale gebruik van de interface niet te beïnvloeden, wordt het interfacelog in de thread-safe queue geplaatst, opent het programma een thread, verbruikt de thread de data in de wachtrij, slaat de data op in MongoDB en gebruikt Maven om afhankelijkheden te introduceren.
Voor meer informatie over mongodb, zie org.springframework.boot.autoconfigure.mongo.MongoProperties
application.yml De configuratie is als volgt:
URI-formaat: gebruikersnaam: root, wachtwoord: aaaaaaa, databaseadres: 127.0.0.1, poortnummer: 27017, databasenaam: test Bijvoorbeeld: mongodb://root:aaaaaa@127.0.0.1:27017/test
AlsDe gebruikersnaam of het wachtwoord bevat een speciaal symbool, dus gebruik de URL-codering, anders wordt er een fout gemeld!
Roep MongoTemplate aan om gegevens in de database te behouden met de volgende code:
(Einde)
|