lupka / laravel-api-logger
通过中间件在您的应用程序内部记录请求/响应。
0.1.0
2020-01-22 04:51 UTC
Requires
- php: ^7.2
- illuminate/support: 5.7.*|5.8.*|^6.0
Requires (Dev)
- orchestra/testbench: 3.7.*|3.8.*|^4.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-22 18:27:25 UTC
README
默认情况下,此包记录以下数据
- 方法 (
GET
、POST
等) - URL
- 客户端IP地址
- 客户端用户代理
- 请求体
- 请求查询参数
- 用户ID(对于已验证请求)
- HTTP状态码 (
200
、404
等) - 响应体(如果为JSON)
- 如果发生错误,则异常类型/消息
对于安装中间件的每个路由。
安装
您可以通过Composer安装此包
composer require lupka/laravel-api-logger
该包将自动注册其服务提供者。
然后运行迁移以将 api_logs
表添加到您的数据库
php artisan migrate
发布配置文件 (api_logger.php
)
php artisan vendor:publish --provider="Lupka\ApiLogger\ApiLoggerServiceProvider" --tag="config"
现在您可以根据需要安装 api-logger
中间件。例如,在 app/Http/Kernel.php
中(记录每个API请求)
protected $middlewareGroups = [ ... 'api' => [ ... 'api-logger', ], ];
或者,您可以将别名添加到特定的路由或组
Route::post('/test', 'TestController@test')->middleware('api-logger');
查看日志
日志存储在 api_logs
表中。该包中包含一个Eloquent模型(Lupka\ApiLogger\Models\ApiLog
),用于查询记录等。例如,要获取所有日志
Lupka\ApiLogger\Models\ApiLog::all();
清除日志
可以通过在您的 app/Console/Kernel.php
文件中安排 api-logger:clear
任务来清除日志
protected function schedule(Schedule $schedule) { ... $schedule->command('api-logger:clear')->daily(); }
默认情况下,将清除30天前的任何日志。可以通过修改 log_expiry
配置值来更改此设置。
日志 -> 用户关系
ApiLog
Eloquent模型包含一个与默认 App\User
模型的关系($log->user()
)。如果您的用户模型具有不同的类名,则可以使用 user_class
配置值更改该关系。
许可协议
根据MIT许可协议许可。有关更多信息,请参阅许可文件。