php - Record API path and payload with logs when Error log is generated in Laravel
I am looking out for solution which can help me to record API Endpoint with Request Payload for debugging purpose on Laravel.
Right now I am able to find Error log generated by Laravel framework when some error is occurred. But I want to log API request payload data when request is failed.
Original Laravel Log when Error is generated:
[2022-09-15 17:40:17] developer.ERROR: Division by zero {"userId":205,"exception":"[object] (ErrorException(code: 0): Division by zero at /Applications/MAMP/htdocs/bm_api/apis/app/Http/Controllers/API/ReportController.php:916)
[stacktrace]
#0 /Applications/MAMP/htdocs/bm_api/apis/app/Http/Controllers/API/ReportController.php(916): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'Division by zer...', '/Applications/M...', 916, Array)
#1 [internal function]: App\\Http\\Controllers\\API\\ReportController->list_xxx_size_wise_purity_report(Object(Illuminate\\Http\\Request))
#2 /Applications/MAMP/htdocs/bm_api/apis/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
.....
I want to add some other details to this framework generated logs as below
[2022-09-15 17:40:17] developer.ERROR: Division by zero {"userId":205,"exception":"[object] (ErrorException(code: 0): Division by zero at /Applications/MAMP/htdocs/bm_api/apis/app/Http/Controllers/API/ReportController.php:916)
[request_details]
API: [API_PATH]
DATA : JSON
PAYLOAD: {.......}
[stacktrace]
#0 /Applications/MAMP/htdocs/bm_api/apis/app/Http/Controllers/API/ReportController.php(916): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'Division by zer...', '/Applications/M...', 916, Array)
#1 [internal function]: App\\Http\\Controllers\\API\\ReportController->list_xxx_size_wise_purity_report(Object(Illuminate\\Http\\Request))
#2 /Applications/MAMP/htdocs/bm_api/apis/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
.....
Answer
Solution:
Hey Laravel have class to manage error handling you can find it in
App\Exceptions\Handler
so you can add you data in register function, after each error throw out laravel call this class automatically