Enregistrement centralisé des demandes et des réponses avec exceptions dans Spring Boot
Lors du développement d'API REST, il est crucial de capturer des journaux complets de toutes les demandes et réponses , y compris les paramètres d'entrée, les méthodes de classe et les exceptions. Cette journalisation centralisée permet un débogage et un audit rapides.
Approche des meilleures pratiques
Spring Boot offre une solution efficace et simple pour cette tâche : le module Actuator. Actuator fournit un point de terminaison (/trace ou /actuator/httptrace) qui enregistre les 100 dernières requêtes HTTP par défaut.
Personnalisation
Pour enregistrer chaque demande et personnaliser le point de terminaison à vos besoins spécifiques, vous pouvez :
Considérations supplémentaires
Autres fournisseurs d'hébergement, tels que Heroku fournit souvent la journalisation des demandes en tant que service, éliminant ainsi le besoin de code personnalisé.
Exemple
Pour configurer Actuator pour la journalisation des demandes et des réponses dans une application Spring Boot :
dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' } # Security configuration (optional) security { httpBasic {} headers { hsts { enabled = true maxAge = 31536000L # 1 year } } }
Sortie
Le point de terminaison /trace produit un Réponse JSON similaire au format souhaité :
{ "timestamp": 1656211869816, "message": "Successful request", "path": "/api/users/1", "method": "GET", "status": 200, "timeTaken": 1397 }
En cas d'exception :
{ "timestamp": 1656211972854, "message": "UserNotFoundException: User with id 9999 not found", "path": "/api/users/9999", "method": "GET", "status": 404, "timeTaken": 2063, "exception": "UserNotFoundException", "error": "User with id 9999 not found" }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!