通过event记录sql
Posted brady-wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过event记录sql相关的知识,希望对你有一定的参考价值。
providers
EventServiceProvider.php 添加
protected $listen = [ ‘IlluminateDatabaseEventsQueryExecuted‘ => [ ‘AppListenersQueryListener‘ ] , ];
执行php artisan event:generate
会生成
QueryListener.php文件
<?php namespace AppListeners; use IlluminateDatabaseEventsQueryExecuted; use IlluminateQueueInteractsWithQueue; use IlluminateContractsQueueShouldQueue; use IlluminateSupportFacadesLog; class QueryListener { /** * 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[‘sql‘] = vsprintf($sql, $event->bindings); Log::info(date("Y-m-d H:i:s")."(". $log[‘sql‘]).")"; } }
bootstrap文件添加
$app->register(AppProvidersEventServiceProvider::class);
以上是关于通过event记录sql的主要内容,如果未能解决你的问题,请参考以下文章