Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Log Berpusat Permintaan, Respons dan Pengecualian Spring Boot REST API?

Bagaimanakah Saya Boleh Log Berpusat Permintaan, Respons dan Pengecualian Spring Boot REST API?

Barbara Streisand
Barbara Streisandasal
2024-11-23 13:48:16940semak imbas

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

Melog Permintaan dan Respons dengan Pengecualian Secara Berpusat dalam But Spring

Apabila membangunkan API REST, adalah penting untuk menangkap log komprehensif semua permintaan dan respons , termasuk parameter input, kaedah kelas dan pengecualian. Pengelogan berpusat ini membolehkan penyahpepijatan dan pengauditan pantas.

Pendekatan Amalan Terbaik

Spring Boot menawarkan penyelesaian yang berkesan dan mudah untuk tugas ini: modul Actuator. Actuator menyediakan titik akhir (/trace atau /actuator/httptrace) yang merekodkan 100 permintaan HTTP terakhir secara lalai.

Penyesuaian

Untuk log setiap permintaan dan menyesuaikan titik akhir untuk keperluan khusus anda, anda boleh:

  • Tambahkan pergantungan spring-boot-starter-actuator kepada projek anda.
  • Senarai putihkan titik akhir yang diingini (cth., /trace atau /api/**) untuk memastikan ia dilog.
  • Secara pilihan, konfigurasikan tetapan keselamatan untuk melindungi akses kepada titik akhir ini.

Tambahan Pertimbangan

Pembekal pengehosan lain, seperti Heroku, sering menyediakan pengelogan permintaan sebagai perkhidmatan, menghapuskan keperluan untuk kod tersuai.

Contoh

Untuk mengkonfigurasi Actuator untuk log permintaan dan respons dalam Boot Spring aplikasi:

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

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

Output

Titik akhir /trace menghasilkan respons JSON yang serupa dengan format yang dikehendaki:

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

Sekiranya pengecualian:

{
  "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"
}

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Log Berpusat Permintaan, Respons dan Pengecualian Spring Boot REST API?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn