I mikrotjenesteutvikling er logging en svært grunnleggende oppgave, hvor man registrerer logginformasjon om grensesnittforespørsel, noe som hjelper oss å feilsøke problemer og reprodusere problemer. Logginnholdet inkluderer lenke, forespørselsmetode, brukeragent, header, nåværende mikrotjenestenode-maskin-IP, node-maskinnavn, kjøremiljø, forespørsels-IP, tidsforbruk og annen informasjon.
Ved å bruke Filter-blokkeren i Spring Cloud-rammeverket kan du avskjære forespørselsinformasjonspostene til alle grensesnitt og lagre forespørselspostene i MongoDB.
Grensesnittloggstruktur
Først, opprett et nytt objekt og definer strukturen til loggen, koden er som følger:
Log-filter
Opprett et nytt RequestLoggerFilter-filter, arv filtergrensesnittet, og implementer doFilter-metoden, dette filteret har høyest prioritet, og filterprioriteten kan settes gjennom @Order-annotasjonen.Filtrer logger POST/PUT-commits (ekskluderer multipart/form-data filcommit-poster), koden er som følger:
Logger lagres i MongoDB
For å unngå å påvirke normal bruk av grensesnittet, vil grensesnittloggen bli lagt i trådsikker kø, programmet vil åpne en tråd, tråden vil konsumere dataene i køen, lagre dataene i MongoDB, og bruke Maven for å introdusere avhengigheter.
For mer informasjon om mongodb, se org.springframework.boot.autoconfigure..MongoProperties
application.yml Konfigurasjonen er som følger:
URI-format: brukernavn: root, passord: aaaaaaaa, databaseadresse: 127.0.0.1, portnummer: 27017, databasenavn: test For eksempel: mongodb://root:aaaaaa@127.0.0.1:27017/test
HvisBrukernavnet eller passordet inneholder et spesielt symbol, så bruk URL-kodingen, ellers vil en feil bli rapportert!
Kall MongoTemplate for å lagre data i databasen med følgende kode:
(Slutt)
|