bilfeldt / laravel-request-logger
记录 Laravel 应用请求和响应以进行调试或统计
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- ext-json: *
- bilfeldt/laravel-correlation-id: ^1.0
- illuminate/contracts: ^10.0 || ^11.0
Requires (Dev)
- nunomaduro/collision: ^7.2 || ^8.0
- orchestra/testbench: ^8.0 || ^9.0
- phpunit/phpunit: ^10.0
- spatie/laravel-ray: ^1.32
README
在 Laravel 应用程序中将请求和响应无配置地记录到数据库或自定义驱动程序中 - 无需再为调试客户支持请求而烦恼。
安装
您可以通过 composer 安装此包
composer require bilfeldt/laravel-request-logger
使用以下命令发布并运行迁移
php artisan vendor:publish --provider="Bilfeldt\RequestLogger\RequestLoggerServiceProvider" --tag="request-logger-migrations" php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Bilfeldt\RequestLogger\RequestLoggerServiceProvider" --tag="request-logger-config"
使用方法
您可以使用以下方法之一有条件地启用所有或部分请求的记录。
通过中间件启用记录(推荐)
此包附带一个方便的 requestlog
中间件,您可以通过在路由(或路由组)上注册中间件来简单地启用请求的记录
Route::middleware('requestlog')->get('/', function () { return 'Hello World'; });
通过配置文件启用
配置文件包含一些方便的设置,用于启用所有或部分请求的记录
// Enable all requests: 'log_methods' => ['*'], // or enable all server errors 'log_statuses' => ['5**'],
通过请求启用记录
此包在 Illuminate\Http\Request
类上添加了一个宏,使得可以直接从请求中启用记录
/** * Index posts. * * @param Request $request * @return Response */ public function index(Request $request) { $request->enableLog(); // }
使用自定义驱动程序扩展
此包实现了 Laravel 管理类,使得在您的应用程序或第三方包中轻松注册自定义驱动程序成为可能。
可以将 example
驱动程序指定为中间件参数
Route::middleware('log:example')->get('/', function () { return 'Hello World'; });
或通过请求宏
$request->enableLog('example');
修剪
如果您不定期修剪日志,日志数量会迅速增长。为了保持日志可管理,您可以使用 prune
命令来删除旧日志,如 Laravel 文档中所述
$schedule->command('requestlog:prune')->daily();
请注意,此包默认设置的 RequestLog
模型不会被 Laravel 默认的 model:prune
命令识别为“可修剪”模型,因为它不在 app/Models
目录中。如果您将此类在配置中更改为自定义类,则将自动注册,上述命令将不再需要。
注意和建议
代理和负载均衡器
当使用代理和/或负载均衡器时,必须将代理/负载均衡器的 IP 地址列为 可信代理,以便正确记录用户的 IP 地址,否则将记录代理自身的 IP 地址。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
贡献
有关详细信息,请参阅 CONTRIBUTING
安全漏洞
有关如何报告安全漏洞的更多信息,请参阅 我们的安全策略
致谢
- Anders Bilfeldt
- Laravel Telescope:请求/响应数据的收集几乎全部来自此包。
- 所有贡献者
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件