Laravel框架實現(xiàn)的記錄SQL日志功能示例
本文實例講述了Laravel框架實現(xiàn)的記錄SQL日志功能。分享給大家供大家參考,具體如下:
在項目開發(fā)過程中或者是性能優(yōu)化中,經(jīng)常會有要查看執(zhí)行sql的情況,然而Laravel日志默認不記錄執(zhí)行sql。好在留有相關接口,我們可以很方便的就是想SQl日志功能。
在 App\Providers\EventServiceProvider:class 中的$listen中新增如下
protected $listen = [ 'App\Events\Event' => [ 'App\Listeners\EventListener', ], // 新增SqlListener監(jiān)聽QueryExecuted 'Illuminate\Database\Events\QueryExecuted' => [ 'App\Listeners\SqlListener', ], ];
新建SqlListener監(jiān)聽器
方法1,手動創(chuàng)建,在App\Listeners\SqlListener.php 文件,內(nèi)容如下
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) { // 在這里編寫業(yè)務邏輯 } }
方法2,使用命令行創(chuàng)建,命令如下
// 該命令必須在項目跟目錄下執(zhí)行,因為項目跟目錄下才有artisan文件。 // 該命令可以自動創(chuàng)建SqlListener文件,但是QueryExecuted這個類的導入可能會有點問題,自己改下。 > php artisan make:listener SqlListener -e=QueryExecuted
在handle方法中編寫記錄sql的業(yè)務邏輯,如:
/** * 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() 里的函數(shù),只是這樣會和其他調(diào)試信息摻在一起。 // 如果要用Log里的函數(shù),別忘記了引入Log類。 }
更多關于Laravel相關內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。
- Laravel日志用法詳解
- laravel中的錯誤與日志用法詳解
- 利用Laravel事件系統(tǒng)如何實現(xiàn)登錄日志的記錄詳解
- Laravel給生產(chǎn)環(huán)境添加監(jiān)聽事件(SQL日志監(jiān)聽)
- Laravel 5.3 學習筆記之 錯誤&日志
- Laravel框架實現(xiàn)利用中間件進行操作日志記錄功能
- Laravel5.5以下版本中如何自定義日志行為詳解
- PHP的Laravel框架結(jié)合MySQL與Redis數(shù)據(jù)庫的使用部署
- Laravel框架使用monolog_mysql實現(xiàn)將系統(tǒng)日志信息保存到mysql數(shù)據(jù)庫的方法
相關文章
PHP分頁初探 一個最簡單的PHP分頁代碼的簡單實現(xiàn)
下面小編就為大家?guī)硪黄狿HP分頁初探 一個最簡單的PHP分頁代碼的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06ThinkPHP結(jié)合ajax、Mysql實現(xiàn)的客戶端通信功能代碼示例
這篇文章主要介紹了ThinkPHP結(jié)合ajax、Mysql實現(xiàn)的客戶端通信功能,需要的朋友可以參考下2014-06-06php 實現(xiàn)簡單的登錄功能示例【基于thinkPHP框架】
這篇文章主要介紹了php 實現(xiàn)簡單的登錄功能,結(jié)合實例形式分析了基于thinkPHP框架登錄功能視圖與控制器簡單實現(xiàn)技巧,需要的朋友可以參考下2019-12-12PHP實現(xiàn)抓取Google IP并自動修改hosts文件
這篇文章主要介紹了PHP實現(xiàn)抓取Google IP并自動修改hosts文件,本文方法可以實現(xiàn)免翻墻上google,小編親測可用,需要的朋友可以參考下2015-02-02