How to record API interface execution time in Yii
Feb 17, 2020 pm 05:17 PMInherit the beforeAction and afterAction hooks of the parent class in BaseController to record the start and end time of API running.
Example:
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;}
(Recommended tutorial: yii framework)
logInfo logging method, this method is a secondary encapsulation of YII info log
// yii日志组件记录日志if (!function_exists("logInfo")) { function logInfo($message, $category = "debug") { // 记录info日志,用于调试 $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); }}
The log output is as follows:
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 configuration is as follows:
[ 'class' => 'yii\log\FileTarget', 'levels' => ['info'], 'categories' => ['debug', 'sql', 'elastic', 'py'], 'logVars' => [], 'logFile' => '@runtime/logs/info.log' ]
For more programming related content, please pay attention to the php Chinese websiteProgramming Tutorial Column!
The above is the detailed content of How to record API interface execution time in Yii. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to crawl and process data by calling API interface in PHP project?

React API Call Guide: How to interact and transfer data with the backend API

Oracle API Usage Guide: Exploring Data Interface Technology

Oracle API integration strategy analysis: achieving seamless communication between systems

Save API data to CSV format using Python

How to deal with Laravel API error problems

PHP API Interface: Getting Started Guide

RESTful API development with Laravel: Building modern web services
