In der Microservice-Entwicklung ist Logging eine sehr grundlegende Aufgabe, bei der Logginformationen der Schnittstelle erfasst werden, was uns hilft, Probleme zu beheben und Probleme zu reproduzieren. Der Protokollinhalt umfasst Link, Anfragemethode, Useragent, Header, aktuelle Microservice-Knotenmaschinen-IP, Knotenmaschinen-Name, Betriebsumgebung, Anforderer-IP, Zeitaufwand und weitere Informationen.
Mit dem Filter Blocker des Spring Cloud Frameworks können Sie die Anfragedatensätze aller Schnittstellen abfangen und die Anfragedaten in MongoDB speichern.
Schnittstellen-Logstruktur
Zuerst erstelle ein neues Objekt und definiere die Struktur des Logs, der Code sieht wie folgt aus:
Log-Filter
Erstellen Sie einen neuen RequestLoggerFilter-Filter, übernehmen Sie die Filter-Schnittstelle und implementieren Sie die doFilter-Methode; dieser Filter hat die höchste Priorität, und die Filterpriorität kann über die @Order Annotation festgelegt werden.Filtern protokollieren POST/PUT-Comits (ausschließen Multipart/Form-Data-Datei-Commit-Datensätze), der Code lautet wie folgt:
Logs bleiben in MongoDB erhalten
Um die normale Nutzung der Schnittstelle nicht zu beeinträchtigen, wird das Schnittstellenprotokoll in die threadsichere Warteschlange gelegt, das Programm öffnet einen Thread, der Thread verbraucht die Daten in der Warteschlange, speichert die Daten in MongoDB und verwendet Maven, um Abhängigkeiten einzuführen.
Weitere Informationen zu mongodb finden Sie unter org.springframework.boot.autoconfigure.mongo.MongoProperties
application.yml Die Konfiguration ist wie folgt:
URI-Format: Benutzername: Root, Passwort: aaaaaaa, Datenbankadresse: 127.0.0.1, Portnummer: 27017, Datenbankname: Test Zum Beispiel: mongodb://root:aaaaaa@127.0.0.1:27017/test
WennDer Benutzername oder das Passwort enthält ein spezielles Symbol, verwenden Sie daher die URL-Codierung, sonst wird ein Fehler gemeldet!
Rufen Sie MongoTemplate auf, um Daten mit folgendem Code in die Datenbank zu speichern:
(Ende)
|