您好,登錄后才能下訂單哦!
這篇文章主要介紹yii記錄api接口執(zhí)行時(shí)間的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
在 BaseController 中繼承父類(lèi)的 beforeAction 和 afterAction 勾子,記錄API運(yùn)行開(kāi)始,以及結(jié)束時(shí)間。
示例:
private $actionStart = 0; private $actionEnd = 0; // beforeAction, afterAction 用來(lái)記錄API請(qǐng)求接口,以及耗時(shí) public function beforeAction($action){ $this->actionStart = microtime(true); return parent::beforeAction($action); } public function afterAction($action, $result){ $this->actionEnd = microtime(true); $afterAction = parent::afterAction($action, $result); // 記錄API請(qǐng)求接口,耗時(shí)took logInfo(print_r(["api" => request()->url, "took" => sprintf("%.5f", $this->actionEnd - $this->actionStart)], true)); return $afterAction;}
(推薦教程:yii框架)
logInfo 日志記錄方法,這個(gè)方法是對(duì) YII info日志的二次封裝
// yii日志組件記錄日志if (!function_exists("logInfo")) { function logInfo($message, $category = "debug") { // 記錄info日志,用于調(diào)試 $logEnable = Yii::$app->params["log_enable"]; if (is_null($logEnable) || $logEnable === false) { return; } Yii::info(sprintf("%s\n\tmemory used %d bytes [%.3f KB]", $message, memory_get_usage(), memory_get_usage()/1024), $category); }}
日志輸出如下:
2019-03-14 02:46:31 [127.0.0.1][-][-][info][debug] Array ( [api] => /protocol?page=1&limit=12&unit=10m&time[]=1551854884755&time[]=1552459684755&q=&es_type=http&src_ip=&src_port=&dst_ip=&dst_port=&sensor_id=&uids=&prs_debug=1 [took] => 0.18194 ) memory used 8996368 bytes [8785.516 KB] in /Users/tophant.yunfei/work/prs-rebirth-php/common/utils/function.php:316 in /Users/tophant.yunfei/work/prs-rebirth-php/backend/controllers/RestBaseController.php:61
Yii-log 配置如下:
[ 'class' => 'yii\log\FileTarget', 'levels' => ['info'], 'categories' => ['debug', 'sql', 'elastic', 'py'], 'logVars' => [], 'logFile' => '@runtime/logs/info.log' ]
以上是“yii記錄api接口執(zhí)行時(shí)間的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。