(a)http://www.cnblogs.com/yjf512/p/4173261.html
(b)https://segmentfault.com/q/1010000007298127
(c)http://blog.csdn.net/junming4/article/details/52464544
===================================================
- <</span>pre
name="code" class="html">protected $listen = [ -
'App\Events\SomeEvent' => [ -
'App\Listeners\EventListener', -
], -
'Illuminate\Database\Events\QueryExecuted' => [ -
'App\Listeners\QueryListener' -
] - ];
- 然后在listenrs文件夹中创建一个文件app\Listeners\QueryListener.php
- class
QueryListener - {
-
-
public function __construct() -
{ -
// -
} -
-
-
public function handle(QueryExecuted $event) -
{ -
// -
$sql = str_replace("?", "'%s'", $event->sql); -
-
$log = vsprintf($sql, $event->bindings); -
-
Log::info($log); -
} - }
然后你就能到
storage\logs\laravel.log 查询你的sql了,优化sql合查询bug有很大的帮助。
================================================================
以上方法将每次sql和laravel日志打印到了一起感觉比较乱 不好查找
参照b链接单独建了sql日志文件
Method 1->简单粗暴
-
use Monolog\Handler\StreamHandler;
-
use Monolog\Logger; $log = new Logger('vikin'); $log->pushHandler( new StreamHandler( storage_path('logs/vikin.log'), Logger::INFO ) ); $log->addInfo("test");