jorisvanw / apilogger
一个小型Laravel包,用于查看API日志,可用于调试。
0.1.13
2020-10-05 13:30 UTC
README
这是一个小型包,可以帮助调试API日志。它可以记录请求方法、URL、持续时间、请求负载、检索的模型、控制器和方法。
安装
- 使用composer安装此包
composer require jorisvanw/apilogger
用法
- Laravel 5.5及以上版本使用包自动发现,因此无需手动添加ServiceProvider。如果您使用的是Laravel的更低版本,您必须在您的app.php文件中注册它
JorisvanW\Providers\ApiLogServiceProvider::class
- 使用以下命令发布配置文件
php artisan vendor:publish --tag=config --provider="JorisvanW\Providers\ApiLogServiceProvider"
配置文件名为apilogs.php。目前支持的驱动程序是db和file
默认情况下,记录器将使用file来记录数据。但如果你想使用数据库进行记录,可以使用以下命令迁移表:
您还可以配置不应记录的字段,如密码、机密等。
如果您仅使用文件驱动程序,则无需迁移
php artisan migrate
- 将名为apilogger的中间件添加到您想要记录数据的路由或控制器中
//in route.php or web.php Route::middleware('apilogger')->post('/test',function(){ return response()->json("test"); });
- 添加控制器和路由
/** * View API logs * * @param \JorisvanW\Contracts\ApiLoggerInterface $logger * * @return \Illuminate\Contracts\View\Factory|\Illuminate\Foundation\Application|\Illuminate\View\View */ public function getApiLogger(ApiLoggerInterface $logger) { $apilogs = $logger->getLogsPaginated(); return view('apilog::index', compact('apilogs')); } /** * Delete API logs. * * @param \JorisvanW\Contracts\ApiLoggerInterface $logger * * @return \Illuminate\Http\RedirectResponse */ public function deleteApiLogs(ApiLoggerInterface $logger): \Illuminate\Http\RedirectResponse { $logger->deleteLogs(); return redirect()->back(); }
- 仪表板可以通过您的路由进行访问。
清除日志
您可以使用以下命令永久清除日志。
php artisan apilog:clear
实现您自己的日志驱动程序
- 您的驱动程序类必须实现ApiLoggerInterface以保存、检索和删除日志。
- 您的驱动程序类可以扩展
AbstractLogger
类,该类提供了一些有用的方法,例如logData和mapArrayToModel。 - 将新类名替换为
db
或file
作为驱动程序。例如:\App\Apilogs\CustomLogger::class
安全性
如果您发现任何与安全性相关的问题,请通过电子邮件agwinthant@gmail.com联系,而不是使用问题跟踪器。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。