rstriquer / eloquent-logger
将SQL查询写入Laravel "storage/logs"目录的文件中。
Requires
- php: >7.0
- laravel/framework: >8.0
Requires (Dev)
- fakerphp/faker: ^1.9.2
- laravel/pint: ^1.1.1
- mockery/mockery: ^1.4.4
- phpstan/phpstan: ^1.4.6
- phpunit/phpunit: ^9.5.23
This package is not auto-updated.
Last update: 2024-09-24 19:47:41 UTC
README
一个允许通过Laravel的eloquent ORM组件记录所有应用程序执行的SQL查询的包。
此包在"vendors"文件夹中构建了一个Laravel提供者,它将一个监听器附加到Eloquent控制台管理器,以将查询写入日志输出。
由于该包位于"vendors"文件夹并在开发环境中安装,因此开发者无需担心从提供者中添加或删除代码,如互联网上某些页面建议的,从而简化了日常操作;
重要:
- 此模块不建议在生产环境中使用。它仅适用于开发环境;
- 考虑到该包会记录所有查询,建议即使在开发环境中也应将其关闭,仅在进行查询改进工作时打开,因为它在连续运行时可能会消耗大量硬盘空间;
- 在非常极端和特定的情况下,例如写入非常大的内容(如长文本字段或类似内容)时,插件可能导致记录失败,这取决于操作系统的限制(在旧版Windows版本中,根据FAT32可能限制输出文件的大小小于4GB);
- 总的来说,日志文件本身并不大,但没有设置logrotate功能,因此建议您监控日志文件大小,并在必要时删除它;
最低要求
此插件是在使用Laravel版本8.0时构建的,应与任何8.0之后的Laravel版本正常工作。
如果您有机会在以前的Laravel版本中成功使用此插件,请考虑提交一个问题来报告您的经验。
如果您在此插件中遇到任何问题,请按照以下“贡献”部分中的步骤报告。
如何安装
只需运行以下命令
composer require rstriquer/eloquent-logger --dev
如果您想,可以通过设置环境变量DB_LOGGER_FILE
来个性化日志文件名。它与.end
文件一起工作,并且该文件必须放置在存储目录中。
如何使用插件
只需在您的.env
文件中将环境变量DB_LOGGER_ACTIVE
设置为true并运行应用程序。在DB_LOGGER_FILE
变量中设置的文件(默认为位于应用程序根目录存储目录中的'/logs/query.log')应包含该次运行执行的查询。
要限制日志文件为最后10行,可以运行以下命令序列
tail -n 10 storage/logs/query.log > storage/logs/query.tmp && \ cat storage/logs/query.tmp > storage/logs/query.log && \ rm storage/logs/query.tmp
贡献
代码位于GitHub的Git仓库中。通过分支仓库并发送拉取请求,我们最欢迎贡献。
讨论在GitHub问题跟踪器中进行。
请始终记住在提交代码前检查lint和类型
composer run test:lint composer run test:types
PS:如果需要修复lint,可以运行composer run lint
几次,直到它通过绿色并自动修复。
为了测试特定的更改,您可以在项目中配置您的 composer.json 文件,具体操作如下:请在此处查看
如何进行单元测试
该包使用内存中的 sqlite 进行功能测试,因此在运行测试之前请确保您的系统已安装 ext-sqlite。
composer run test:unit
行为准则
我们遵循并支持 Laravel 行为准则,为了确保 Laravel 社区对所有成员都友好,请查看并遵守行为准则。
作者和许可
这是一个由 @rstriquer 开源的项目,并使用 MIT 许可证授权。
rstriquer 保留在未来版本中更改许可证的权利,但理解并同意在此描述的 MIT 许可证下,之前的版本仍然受到该许可证的保护。