Heim > Java > javaLernprogramm > Hauptteil

Wie kann ich Anfragen, Antworten und Ausnahmen der Spring Boot REST API zentral protokollieren?

Barbara Streisand
Freigeben: 2024-11-23 13:48:16
Original
830 Leute haben es durchsucht

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

Anfragen und Antworten mit Ausnahmen zentral in Spring Boot protokollieren

Bei der Entwicklung von REST-APIs ist es wichtig, umfassende Protokolle aller Anfragen und Antworten zu erfassen , einschließlich Eingabeparameter, Klassenmethoden und Ausnahmen. Diese zentralisierte Protokollierung ermöglicht ein schnelles Debugging und Auditing.

Best-Practice-Ansatz

Spring Boot bietet eine effektive und unkomplizierte Lösung für diese Aufgabe: das Actuator-Modul. Actuator stellt einen Endpunkt (/trace oder /actuator/httptrace) bereit, der standardmäßig die letzten 100 HTTP-Anfragen protokolliert.

Anpassung

Um jede Anfrage zu protokollieren und den Endpunkt anzupassen Je nach Ihren spezifischen Anforderungen können Sie:

  • die Spring-Boot-Starter-Aktuator-Abhängigkeit hinzufügen Ihr Projekt.
  • Setzen Sie die gewünschten Endpunkte auf die Whitelist (z. B. /trace oder /api/**), um sicherzustellen, dass sie protokolliert werden.
  • Optional können Sie Sicherheitseinstellungen konfigurieren, um den Zugriff auf diese Endpunkte zu schützen.

Zusätzliche Überlegungen

Andere Hosting-Anbieter, wie z Stellen Sie wie Heroku häufig die Anforderungsprotokollierung als Dienst bereit, sodass kein benutzerdefinierter Code erforderlich ist.

Beispiel

Um Actuator für die Anforderungs- und Antwortprotokollierung in einer Spring Boot-Anwendung zu konfigurieren :

    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-actuator'
    }

    # Security configuration (optional)
    security {
        httpBasic {}
        headers {
            hsts {
                enabled = true
                maxAge = 31536000L  # 1 year
            }
        }
    }
Nach dem Login kopieren

Ausgabe

Der /trace-Endpunkt erzeugt eine JSON-Antwort ähnlich dem gewünschten Format:

{
  "timestamp": 1656211869816,
  "message": "Successful request",
  "path": "/api/users/1",
  "method": "GET",
  "status": 200,
  "timeTaken": 1397
}
Nach dem Login kopieren

Im Ausnahmefall:

{
  "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"
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Anfragen, Antworten und Ausnahmen der Spring Boot REST API zentral protokollieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage