日志打點(diǎn)接口耗時(shí)腳本(原創(chuàng))

<?php

namespace lib;

/**

* NoticeLogClass

* User: xuexiaoyang

* Date: 2018/7/3

* Time: 17:58

*/

/**

* -----------------------------------接口優(yōu)化輔助日志-----------------------------------

* 記錄接口耗時(shí),可以在同等日志按天為單位

* 記錄地址:code/framework/logs/Notice/

*

*

*/

class NoticeLog

{

? ? private static $startName = [];? //記錄開始標(biāo)識

? ? private static $endName? = [];? //記錄結(jié)束標(biāo)識

? ? /***

? ? * @param? $star_name

? ? * @author xuexiaoyang

? ? * @date? 2018/12/24

? ? * @time? 16:21

? ? * @return bool| 賦值

? ? * 日志準(zhǔn)備開始(主要進(jìn)行賦值操作)

? ? */

? ? 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| 賦值

? ? * 日志準(zhǔn)備結(jié)束(主要進(jìn)行賦值操作)

? ? */

? ? 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

? ? * 日志獲取對應(yīng)的微妙(主要進(jìn)行賦值操作)

? ? */

? ? 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 | 寫入

? ? * 日志寫入(主要進(jìn)行日志寫入操作)

? ? */

? ? 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);

? ? }

}


?>

附一張調(diào)用圖:


run()方法要記得調(diào)用并且在最下面,這樣才會如數(shù)寫入。

附一張監(jiān)控圖:


里面帶有訪問的URL 帶有對應(yīng)標(biāo)識的耗時(shí)記錄(MS為單位),方便實(shí)用


堅(jiān)持創(chuàng)作想法 ~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容