日志打点接口耗时脚本(原创)

<?php

namespace lib;

/**

* NoticeLogClass

* User: xuexiaoyang

* Date: 2018/7/3

* Time: 17:58

*/

/**

* -----------------------------------接口优化辅助日志-----------------------------------

* 记录接口耗时,可以在同等日志按天为单位

* 记录地址:code/framework/logs/Notice/

*

*

*/

class NoticeLog

{

    private static $startName = [];  //记录开始标识

    private static $endName  = [];  //记录结束标识

    /***

    * @param  $star_name

    * @author xuexiaoyang

    * @date  2018/12/24

    * @time  16:21

    * @return bool| 赋值

    * 日志准备开始(主要进行赋值操作)

    */

    public static function start(string $star_name)

{

        if (empty($star_name)) {

            return false;

        }

        $data[$star_name] = self::_getTime();

        self::$startName  = array_merge(self::$startName, $data);

    }

    /***

    * @param  $end_name

    * @author xuexiaoyang

    * @date  2018/12/24

    * @time  16:21

    * @return bool| 赋值

    * 日志准备结束(主要进行赋值操作)

    */

    public static function stop(string $end_name)

{

      if (empty($end_name)) {

          return false;

      }

        $data[$end_name] = self::_getTime();

        self::$endName = array_merge(self::$endName, $data);

    }

    /***

    * @author xuexiaoyang

    * @date  2018/12/24

    * @time  16:21

    * @return int

    * 日志获取对应的微妙(主要进行赋值操作)

    */

    private static function _getTime()

{

        list($msec, $sec) = explode(' ', microtime());

        $msectime =  (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);

        return $msectime;

    }

    /***

    * @author xuexiaoyang

    * @date  2018/12/24

    * @time  16:21

    * @return bool | 写入

    * 日志写入(主要进行日志写入操作)

    */

    public static function run()

{

        if (empty(self::$startName)) {

            return false;

        }

        $endData = self::$endName;

        $str = '[http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'] performance:';

        foreach (self::$startName as $k => $v) {

            if (isset($endData[$k])) {

                $vv  = $endData[$k];

                $str .= '['.$k.':'.ceil($vv-$v). 'ms] ';

            }

}

        runtime_log("Notice/optimize", $str);

    }

}


?>

附一张调用图:


run()方法要记得调用并且在最下面,这样才会如数写入。

附一张监控图:


里面带有访问的URL 带有对应标识的耗时记录(MS为单位),方便实用


坚持创作想法 ~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容