首页 / PHP / yii怎么记录api接口执行时间
yii怎么记录api接口执行时间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了yii怎么记录api接口执行时间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1846字,纯文字阅读大概需要3分钟。
内容图文
![yii怎么记录api接口执行时间](/upload/InfoBanner/zyjiaocheng/276/e0578eac51fc405b8ad6a9a0a7974c6d.jpg)
在 BaseController 中继承父类的 beforeAction 和 afterAction 勾子,记录API运行开始,以及结束时间。
示例:
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;}
(推荐教程:yii框架)
logInfo 日志记录方法,这个方法是对 YII info日志的二次封装
// 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); }}
日志输出如下:
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' ]
更多编程相关内容,请关注Gxlcms编程教程栏目!
以上就是yii怎么记录api接口执行时间的详细内容。
内容总结
以上是互联网集市为您收集整理的yii怎么记录api接口执行时间全部内容,希望文章能够帮你解决yii怎么记录api接口执行时间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。