Dans le développement de microservices, la journalisation est une tâche très basique, enregistrant les informations de journal des requêtes de l’interface, ce qui nous aide à résoudre les problèmes et à les reproduire. Le contenu du journal comprend le lien, la méthode de requête, l’agent utilisateur, l’en-tête, l’IP actuelle de la machine microservice, le nom de la machine à nœuds, l’environnement d’exécution, l’IP du demandeur, la consommation de temps et d’autres informations.
En utilisant le bloqueur de filtres du framework Spring Cloud, vous pouvez intercepter les enregistrements d’information de requête de toutes les interfaces et faire persister les enregistrements de requête dans MongoDB.
Structure du journal d’interface
D’abord, créez un nouvel objet et définissez la structure du journal, le code est le suivant :
Filtre logarithmique
Créez un nouveau filtre RequestLoggerFilter, héritez de l’interface Filter et implémentez la méthode doFilter ; ce filtre a la priorité la plus élevée, et la priorité du filtre peut être définie via l’annotation @Order.Filtre les commits POST/PUT des logs (exclut les enregistrements de validation multipart/form-data), le code est le suivant :
Les journaux persistent vers MongoDB
Pour ne pas affecter l’utilisation normale de l’interface, le journal d’interface sera placé dans la file thread-safe, le programme ouvrira un thread, le thread consommera les données de la file, stockera les données dans MongoDB, et utilisera Maven pour introduire des dépendances.
Pour plus d’informations sur mongodb, consultez org.springframework.boot.autoconfigure.mongo.MongoProperties
application.yml La configuration est la suivante :
Format URI : nom d’utilisateur : root, mot de passe : aaaaaaa, adresse de base de données : 127.0.0.1, numéro de port : 27017, nom de base de données : test Par exemple : mongodb://root:aaaaaa@127.0.0.1:27017/test
SiLe nom d’utilisateur ou le mot de passe contient un symbole spécial, donc utilisez le codage de l’URL, sinon une erreur sera signalée !
Appelez MongoTemplate pour faire persister les données dans la base de données avec le code suivant :
(Fin)
|