Laravel Database Logger SQL 执行分析工具包

分享一个在实际应用场景中使用的一个小功能包 Laravel database logger

Why

16年的时候用 Laravel +H5 (vue)做出电商产品首次上线后,因为是纯 API,当时的 Laravel SQL 分析工具不能满足自己的需求,所以催生了此工具包,希望对大家有帮助 : )

特性

  1. 日志文件区分匿名用户和 Guard.
  2. 记录执行用户
  3. 记录 request url
  4. 支持记录指定 SQL 语句类型(SELECT,INSET INTO,UPDATE,DELETE,ALTER TABLE etc.)
  5. 单独记录 slow sql.

安装

composer require ibrand/laravel-database-logger:~1.0 -vvv

低于 Laravel5.5 版本

config/app.php 文件中 'providers' 添加

iBrand\DatabaseLogger\ServiceProvider::class

php artisan vendor:publish --provider="iBrand\DatabaseLogger\ServiceProvider"

使用

  1. add databaselogger middleware to route.
  2. set log_queries=>true in config/ibrand/dblogger.php file. or set DB_LOG_QUERIES = true in .env file.

效果

9459

9462

9465

欢迎大家 star 和提交 issue :)

本作品采用《CC 协议》,转载必须注明作者和本文链接
公众号:前程序员陈彼得
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

关键就是listen吧,能同时把当前使用的数据库链接记录下来吗?

app('db')->listen(function ($query, $bindings = null, $time = null) use ($logger) {
                $logger->log($query, $bindings, $time);
            });
5年前 评论

@lovecn 按道理是可以在日志的代码中获取到当前数据库的连接。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!