我正在寻找解决方案,该解决方案可以帮助我记录带有请求负载的API端点,以便在Laravel上进行调试。
现在我能够找到Laravel框架在发生错误时生成的错误日志。但当请求失败时,我想记录API请求负载数据。
生成错误时的原始Laravel日志:
[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)
.....
我想添加一些其他细节到这个框架生成的日志如下
[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)
.....
嘿,Laravel有管理错误处理的类,你可以在AppExceptionsHandler
这样你就可以在寄存器函数中添加你的数据,每次出错后抛出laravel自动调用这个类