在?BaseController?中繼承父類別的?beforeAction?和?afterAction?勾子,並記錄API運作開始,以及結(jié)束時間。
範(fàn)例:
private $actionStart = 0; private $actionEnd = 0; // beforeAction, afterAction 用來記錄API請求接口,以及耗時 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請求接口,耗時took logInfo(print_r(["api" => request()->url, "took" => sprintf("%.5f", $this->actionEnd - $this->actionStart)], true)); return $afterAction;}
(建議教學(xué):yii框架)
logInfo?日誌記錄方法,這個方法是對?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 設(shè)定如下:
[ 'class' => 'yii\log\FileTarget', 'levels' => ['info'], 'categories' => ['debug', 'sql', 'elastic', 'py'], 'logVars' => [], 'logFile' => '@runtime/logs/info.log' ]
更多程式設(shè)計相關(guān)內(nèi)容,請關(guān)注php中文網(wǎng)程式教學(xué)
以上是yii怎麼記錄api介面執(zhí)行時間的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Oracle是一家全球知名的資料庫管理系統(tǒng)供應(yīng)商,其API(ApplicationProgrammingInterface,應(yīng)用程式介面)是一種強大的工具,可協(xié)助開發(fā)人員輕鬆地與Oracle資料庫互動和整合。在本文中,我們將深入探討OracleAPI的使用指南,向讀者展示如何在開發(fā)過程中利用資料介面技術(shù),同時提供具體的程式碼範(fàn)例。 1.Oracle

開發(fā)建議:如何利用ThinkPHP框架進行API開發(fā)隨著網(wǎng)際網(wǎng)路的不斷發(fā)展,API(ApplicationProgrammingInterface)的重要性也日益凸顯。 API是不同應(yīng)用程式之間進行通訊的橋樑,它可以實現(xiàn)資料共享、功能呼叫等操作,為開發(fā)者提供了相對簡單且快速的開發(fā)方式。而ThinkPHP框架作為一款優(yōu)秀的PHP開發(fā)框架,具有高效能、可擴展且易用

OracleAPI整合策略解析:實現(xiàn)系統(tǒng)間無縫通信,需要具體程式碼範(fàn)例在當(dāng)今數(shù)位化時代,企業(yè)內(nèi)部系統(tǒng)之間需要相互通信和資料共享,而OracleAPI就是幫助實現(xiàn)系統(tǒng)間無縫通信的重要工具之一。本文將從OracleAPI的基本概念和原則入手,探討API整合的策略,最終給出具體的程式碼範(fàn)例幫助讀者更好地理解和應(yīng)用OracleAPI。一、OracleAPI基本

標(biāo)題:如何處理LaravelAPI報錯問題,需要具體程式碼範(fàn)例在進行Laravel開發(fā)時,常會遇到API報錯的情況。這些報錯可??能來自於程式碼邏輯錯誤、資料庫查詢問題或是外部API請求失敗等多種原因。如何處理這些報錯是一個關(guān)鍵的問題,本文將透過具體的程式碼範(fàn)例來示範(fàn)如何有效處理LaravelAPI報錯問題。 1.錯誤處理在Laravel

ReactAPI呼叫指南:如何與後端API進行互動和資料傳輸概述:在現(xiàn)代的Web開發(fā)中,與後端API進行互動和資料傳輸是一個常見的需求。 React作為一個流行的前端框架,提供了一些強大的工具和功能來簡化這個過程。本文將介紹如何使用React來呼叫後端API,包括基本的GET和POST請求,並提供具體的程式碼範(fàn)例。安裝所需的依賴:首先,確保在專案中安裝了Axi

PHPAPI介面:如何使用InsomniaInsomnia是一款功能強大的API測試和偵錯工具,它能夠幫助開發(fā)者快速、方便地測試和驗證API接口,支援多種程式語言和協(xié)議,其中包括PHP。本文將介紹如何使用Insomnia測試PHPAPI介面。第一步:安裝InsomniaInsomnia是一款跨平臺的應(yīng)用程序,支援Windows、MacOS和Linux等

如何使用Java開發(fā)一個基於RESTful的APIRESTful是一種基於HTTP協(xié)定的架構(gòu)風(fēng)格,透過使用HTTP協(xié)定的GET、POST、PUT、DELETE等方法來實現(xiàn)對資源的操作。在Java開發(fā)中,可以使用一些框架來簡化RESTfulAPI的開發(fā)過程,如SpringMVC、Jersey等。本文將向您詳細(xì)介紹如何使用Java開發(fā)一個基於RESTful的

如何使用MongoDB開發(fā)一個簡單的CRUDAPI在現(xiàn)代的網(wǎng)路應(yīng)用程式開發(fā)中,CRUD(增刪改查)操作是非常常見且重要的功能之一。在本文中,我們將介紹如何使用MongoDB資料庫開發(fā)一個簡單的CRUDAPI,並提供具體的程式碼範(fàn)例。 MongoDB是一個開源的NoSQL資料庫,它以文件的形式儲存資料。與傳統(tǒng)的關(guān)聯(lián)式資料庫不同,MongoDB沒有預(yù)先定義的模式
