Inherit 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 用來(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;}
(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日志,用于調(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); }}
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 AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

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)

Oracle is a world-renowned database management system provider, and its API (Application Programming Interface) is a powerful tool that helps developers easily interact and integrate with Oracle databases. In this article, we will delve into the Oracle API usage guide, show readers how to utilize data interface technology during the development process, and provide specific code examples. 1.Oracle

OracleAPI integration strategy analysis: To achieve seamless communication between systems, specific code examples are required. In today's digital era, internal enterprise systems need to communicate with each other and share data, and OracleAPI is one of the important tools to help achieve seamless communication between systems. This article will start with the basic concepts and principles of OracleAPI, explore API integration strategies, and finally give specific code examples to help readers better understand and apply OracleAPI. 1. Basic Oracle API

The main differences between Laravel and Yii are design concepts, functional characteristics and usage scenarios. 1.Laravel focuses on the simplicity and pleasure of development, and provides rich functions such as EloquentORM and Artisan tools, suitable for rapid development and beginners. 2.Yii emphasizes performance and efficiency, is suitable for high-load applications, and provides efficient ActiveRecord and cache systems, but has a steep learning curve.

The steps to containerize and deploy Yii applications using Docker include: 1. Create a Dockerfile and define the image building process; 2. Use DockerCompose to launch Yii applications and MySQL database; 3. Optimize image size and performance. This involves not only specific technical operations, but also understanding the working principles and best practices of Dockerfile to ensure efficient and reliable deployment.

With the popularity of the Internet and mobile devices, WebService (network service) has become an essential technology. Now, WebService has become a standardized communication protocol, so it can be completed by various systems. In PHP development, WebService is also a very important and common technology. This article will explore web services in PHP, including the basics and how to use them. 1. What is a Web service? The concept of Web services refers to the provision of services on the Web

Detailed explanation of DeepSeekAPI access and call: Quick Start Guide This article will guide you in detail how to access and call DeepSeekAPI, helping you easily use powerful AI models. Step 1: Get the API key to access the DeepSeek official website and click on the "Open Platform" in the upper right corner. You will get a certain number of free tokens (used to measure API usage). In the menu on the left, click "APIKeys" and then click "Create APIkey". Name your APIkey (for example, "test") and copy the generated key right away. Be sure to save this key properly, as it will only be displayed once

Migratingalaravel Projecttoyiiishallingbutachieffable WITHIEFLEFLANT.1) Mapoutlaravel component likeroutes, Controllers, Andmodels.2) Translatelaravel's SartisancommandeloequentTooyii's giiandetiverecordeba

The main difference between senior Yii developers and junior Yii developers is experience, depth of skills and way of thinking. 1. Senior developers pay attention to performance optimization and code reconstruction, and use Yii's cache mechanism to improve application performance. 2. They deeply understand Yii's underlying principles, participate in architectural design and technical decision-making, and use modular design to build flexible applications. 3. Senior developers pay attention to overall project planning and long-term development and play the role of mentor. Junior developers need to gradually improve through learning and practice, and eventually grow into senior developers.
