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:
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!