Laravel框架实现的记录SQL日志功能示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-10-05 10:23:10 浏览: 评论:0
这篇文章主要介绍了Laravel框架实现的记录SQL日志功能,结合实例形式总结分析了Laravel框架监听并记录SQL相关操作技巧与注意事项,需要的朋友可以参考下。
本文实例讲述了Laravel框架实现的记录SQL日志功能,分享给大家供大家参考,具体如下:
在项目开发过程中或者是性能优化中,经常会有要查看执行sql的情况,然而Laravel日志默认不记录执行sql,好在留有相关接口,我们可以很方便的就是想SQl日志功能。
在 App\Providers\EventServiceProvider:class 中的$listen中新增如下
- protected $listen = [
- 'App\Events\Event' => [
- 'App\Listeners\EventListener',
- ],
- // 新增SqlListener监听QueryExecuted
- 'Illuminate\Database\Events\QueryExecuted' => [
- 'App\Listeners\SqlListener',
- ],
- ];
新建SqlListener监听器
方法1,手动创建,在App\Listeners\SqlListener.php 文件,内容如下
- namespace App\Listeners;
- use Illuminate\Database\Events\QueryExecuted;
- class SqlListener {
- /**
- * Create the event listener.
- *
- * @return void
- */
- public function __construct() {
- //
- }
- /**
- * Handle the event.
- *
- * @param =QueryExecuted $event
- * @return void
- */
- public function handle(QueryExecuted $event) {
- // 在这里编写业务逻辑
- }
- }
方法2,使用命令行创建,命令如下
该命令必须在项目跟目录下执行,因为项目跟目录下才有artisan文件。
该命令可以自动创建SqlListener文件,但是QueryExecuted这个类的导入可能会有点问题,自己改下。
> php artisan make:listener SqlListener -e=QueryExecuted
在handle方法中编写记录sql的业务逻辑,如:
- /**
- * Handle the event.
- *
- * @param =QueryExecuted $event
- * @return void
- */
- public function handle(QueryExecuted $event) {
- $sql = str_replace("?", "'%s'", $event->sql);
- $log = vsprintf($sql, $event->bindings);
- $log = '[' . date('Y-m-d H:i:s') . '] ' . $log . "\r\n";
- $filepath = storage_path('logs\sql.log');
- file_put_contents($filepath, $log, FILE_APPEND);
- // 这里也可以直接用Log::info() 里的函数,只是这样会和其他调试信息掺在一起。
- // 如果要用Log里的函数,别忘记了引入Log类。
- }
Tags: Laravel SQL日志
相关文章
- ·Laravel 5.6中的CURD操作(代码示例详解)(2020-01-15)
- ·如何在laravel 5中创建用于XSS防御的中间件? (2020-01-16)
- ·关于Laravel重定向的七种方法详解(2020-01-26)
- ·如何在laravel 5中使用DB事务?(2020-01-31)
- ·Laravel中如何给图片加水印?(2020-04-05)
- ·Laravel框架数据库CURD操作、连贯操作总结(2021-04-10)
- ·Laravel框架路由配置总结、设置技巧大全(2021-04-10)
- ·Laravel框架中扩展函数、扩展自定义类的方法(2021-04-10)
- ·跟我学Laravel之快速入门(2021-04-16)
- ·跟我学Laravel之安装Laravel(2021-04-16)
- ·跟我学Laravel之配置Laravel(2021-04-16)
- ·跟我学Laravel之请求(Request)的生命周期(2021-04-16)
- ·跟我学Laravel之路由(2021-04-16)
- ·跟我学Laravel之请求与输入(2021-04-17)
- ·跟我学Laravel之视图 & Response(2021-04-17)
- ·laravel安装和配置教程(2021-04-19)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)