您好,登錄后才能下訂單哦!
一、效果圖
二、功能點:
1.當前請求的路由
2.當前請求的參數(shù)
3.當前一次請求運行的SQL,及SQL的運行時間。
上面三點包含我們在本地環(huán)境開發(fā)過程中必備的基本調(diào)式信息。
三、實現(xiàn):
1.開發(fā)運行環(huán)境的配置
1.1打開.env文件 增加開關,建議開發(fā)環(huán)境設置為true,生產(chǎn)環(huán)境設置為false APP_DEBUG=true 1.2設置LOG級別 APP_LOG_LEVEL=debug 1.3增加打印sql開關配置 打開config目錄的任意配置文件,我這里將配置防到database.php中 'sql_debug' => env('APP_DEBUG'),
2.實現(xiàn)打印請求路由及參數(shù)
打開App\Http\Controllers\Controller.php文件 增加構造方法: public function __construct(Request $request) { if (env('APP_DEBUG')) { \Log::debug("\n\n"); \Log::debug('請求路由:' . $request->url()); $requestParameters = $request->all(); if (!empty($requestParameters)) { \Log::debug('請求參數(shù):' . var_export($requestParameters, true)); } else { \Log::debug('請求參數(shù):無'); } } }
3.實現(xiàn)打印運行的SQL語句
打開App\Providers\AppServiceProvider; boot方法中增加DB監(jiān)聽 public function boot() { //sql調(diào)試 $sql_debug = config('database.sql_debug');//注意這里獲取開關配置 if ($sql_debug) { DB::listen(function ($sql) { foreach ($sql->bindings as $i => $binding) { if ($binding instanceof \DateTime) { $sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\''); } else { if (is_string($binding)) { $sql->bindings[$i] = "'$binding'"; } } } $query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql); $query = vsprintf($query, $sql->bindings); \Log::debug('運行SQL:' . $query); \Log::debug('運行耗時:' . $sql->time . ' ms'); }); } }
四、驗證并使用
終端下進到項目根目錄,運行日志追蹤命令
tail -f ./storage/logs/laravel.log
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。