yii怎么记录api接口执行时间

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

yii怎么记录api接口执行时间

在 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']
登录后复制

更多编程相关内容,请关注9543建站博客编程教程栏目!

以上就是yii怎么记录api接口执行时间的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:workerman端口不通怎么办
下一篇:那些年,微信小程序仿网易云音乐有关实时搜索功能

发表评论

关闭广告
关闭广告