Maison > Java > javaDidacticiel > Comment puis-je enregistrer de manière centralisée les requêtes, les réponses et les exceptions de l'API REST Spring Boot ?

Comment puis-je enregistrer de manière centralisée les requêtes, les réponses et les exceptions de l'API REST Spring Boot ?

Barbara Streisand
Libérer: 2024-11-23 13:48:16
original
901 Les gens l'ont consulté

How Can I Centrally Log Spring Boot REST API Requests, Responses, and Exceptions?

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 :

  • Ajouter la dépendance spring-boot-starter-actuator à votre projet.
  • Mettez en liste blanche les points de terminaison souhaités (par exemple, /trace ou /api/**) pour vous assurer qu'ils sont connectés.
  • Facultativement, configurez les paramètres de sécurité pour protéger l'accès à ces points de terminaison.

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
            }
        }
    }
Copier après la connexion

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
}
Copier après la connexion

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"
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal