国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

Laravel框架實(shí)現(xiàn)的記錄SQL日志功能示例

2024-05-05 00:04:18
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Laravel框架實(shí)現(xiàn)的記錄SQL日志功能。分享給大家供大家參考,具體如下:

在項(xiàng)目開發(fā)過程中或者是性能優(yōu)化中,經(jīng)常會(huì)有要查看執(zhí)行sql的情況,然而Laravel日志默認(rèn)不記錄執(zhí)行sql。好在留有相關(guān)接口,我們可以很方便的就是想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,手動(dòng)創(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è)務(wù)邏輯  }}

方法2,使用命令行創(chuàng)建,命令如下

// 該命令必須在項(xiàng)目跟目錄下執(zhí)行,因?yàn)轫?xiàng)目跟目錄下才有artisan文件。// 該命令可以自動(dòng)創(chuàng)建SqlListener文件,但是QueryExecuted這個(gè)類的導(dǎo)入可能會(huì)有點(diǎn)問題,自己改下。> php artisan make:listener SqlListener -e=QueryExecuted

在handle方法中編寫記錄sql的業(yè)務(wù)邏輯,如:

/** * 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ù),只是這樣會(huì)和其他調(diào)試信息摻在一起。  // 如果要用Log里的函數(shù),別忘記了引入Log類。}

希望本文所述對大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 娄烦县| 迁安市| 遂溪县| 东乌珠穆沁旗| 阿巴嘎旗| 延津县| 铜川市| 开封市| 江津市| 安康市| 大理市| 丽江市| 杭锦旗| 北辰区| 阜康市| 开封市| 房产| 靖州| 大英县| 呼伦贝尔市| 汤阴县| 德清县| 祁连县| 辽中县| 瑞金市| 凯里市| 石台县| 西平县| 许昌县| 京山县| 鄂伦春自治旗| 陕西省| 曲阜市| 玛曲县| 福州市| 加查县| 天镇县| 天镇县| 文化| 隆德县| 沙湾县|