<?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í)用