Rumah > Java > javaTutorial > teks badan

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

Barbara Streisand
Lepaskan: 2024-11-23 13:48:16
asal
854 orang telah melayarinya

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
            }
        }
    }
Salin selepas log masuk

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
}
Salin selepas log masuk

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"
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan