lupka/laravel-api-logger

通过中间件在您的应用程序内部记录请求/响应。

0.1.0 2020-01-22 04:51 UTC

This package is auto-updated.

Last update: 2024-09-22 18:27:25 UTC


README

默认情况下,此包记录以下数据

  • 方法 (GETPOST 等)
  • URL
  • 客户端IP地址
  • 客户端用户代理
  • 请求体
  • 请求查询参数
  • 用户ID(对于已验证请求)
  • HTTP状态码 (200404 等)
  • 响应体(如果为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许可协议许可。有关更多信息,请参阅许可文件