项目根目录下执行:
php artisan make:listener SqlListener -e=QueryExecuted
会在App\Listener\下生成一个SqlListener文件,修改代码:
<?php
namespace App\Listeners;
use Illuminate\Database\Events\QueryExecuted;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class SqlListener
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* 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 .= "\r\n-----------------------------------------------";
$log = $log . "\r\n";
$filePath = storage_path('logs/sql.log');
file_put_contents($filePath, $log, FILE_APPEND);
}
}
然后在App/Provider/EventServiceProvider.php中加入:
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Event;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'App\Events\SomeEvent' => [
'App\Listeners\EventListener',
],
'Illuminate\Database\Events\QueryExecuted' => [
'App\Listeners\SqlListener'
]
];
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
parent::boot();
//
}
}
给sql.log写入权限,执行相应程序会自动记录sql,也可以用tailf跟踪,不过要注意安全,这个放网上可能会暴露数据库结构
- 相关文章
- laravel 中悲观锁 & 乐观锁的使用
- laravel整合dingo/api方法步骤:jwt
- 一个简单的laravel分表联合查询
- laravel页面静态化的方法
- laravel对具体的路由不采用csrfTok
- laravel不转义富文本中html标签
- laravel学习笔记
- laravel框架核心-反射、依赖注入、
- laravel框架核心-serviceProvider
- laravel启动流程(生命周期)
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- centos7.4 64位下swoole安装及配置
- laravel页面静态化的方法
- navicate连接mycat报1184错误
- 单点登录sso原理及php实现方式及de
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:607篇
- 浏览数:933078