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 协议》,转载必须注明作者和本文链接
公众号:前程序员陈彼得
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2

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

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

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

2年前 评论

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