Piotr Labudda 8 lat temu
rodzic
commit
ed7c0b4a7f
2 zmienionych plików z 48 dodań i 46 usunięć
  1. 46 44
      SE/se-lib/DebugLazyLogger.php
  2. 2 2
      SE/se-lib/Route/Debug.php

+ 46 - 44
SE/se-lib/DebugLazyLogger.php

@@ -15,26 +15,26 @@ class DebugLazyLogger {
 		]) . '.log';
 	}
 
-	function addLog($mixedArg, $type, $msg) {
+	function _addLog($mixedArg, $type, $msg, $trace, $moreMsg) {
 		$microTime = date("Y-m-d H:i:s") . substr((string)microtime(), 1, 6);
-		$this->_items[] = [ $microTime, $mixedArg, $type, $msg ];
+		$this->_items[] = [ $microTime, $mixedArg, $type, $msg, $trace, $moreMsg ];
 	}
 
 	function __destruct() {
 		$startSaveLog = date("Y-m-d H:i:s") . substr((string)microtime(), 1, 6);
 		$firstItem = reset($this->_items);
 		foreach ($this->_items as $logItem) { // $logItem: [ $mixedArg, $type, $msg, $logFileName ]
-			list($microTime, $mixedArg, $type, $msg) = $logItem;
-			self::saveLogItemToFile($microTime, $mixedArg, $type, $msg, $this->_logFileName);
+			list($microTime, $mixedArg, $type, $msg, $trace, $moreMsg) = $logItem;
+			self::saveLogItemToFile($this->_logFileName, $microTime, $type, $msg, $moreMsg, $trace);
 		}
 		$endSaveLog = date("Y-m-d H:i:s") . substr((string)microtime(), 1, 6);
-		self::saveLogItemToFile($startSaveLog, $mixedArg = null, $type = 'string', $msg = "Start saving log", $this->_logFileName);
-		self::saveLogItemToFile($endSaveLog,   $mixedArg = null, $type = 'string', $msg = "End saving log", $this->_logFileName);
-		self::saveLogItemToFile($endSaveLog,   $mixedArg = [
+		self::saveLogItemToFile($this->_logFileName, $startSaveLog, $type = 'string', $msg = "Start saving log");
+		self::saveLogItemToFile($this->_logFileName, $endSaveLog,   $type = 'string', $msg = "End saving log");
+		self::saveLogItemToFile($this->_logFileName, $endSaveLog,   $type = 'array', $msg = "Summary", $moreMsg = implode("\n", [
 			"{$firstItem[0]} diff(-----) - first log entry",
 			"{$startSaveLog} diff(" . V::milisecondsStringDiff($startSaveLog, $firstItem[0]) . ") - start saving log to file",
 			"{$endSaveLog} diff(" . V::milisecondsStringDiff($endSaveLog, $startSaveLog) . ") - end saving log to file",
-		], $type = 'array', $msg = "Summary", $this->_logFileName);
+		]));
 	}
 
 	static function getInstance() {
@@ -43,66 +43,68 @@ class DebugLazyLogger {
 		return $instance;
 	}
 
-	static function log($mixedArg, $type, $msg) {
+	static function log($mixedArg, $type = '', $msg = '') {
 		$logger = self::getInstance();
-		$logger->addLog($mixedArg, $type, $msg);
-	}
+		$trace = '';
+		$moreMsg = '';
 
-	static function saveLogItemToFile($microTime ,$mixedArg, $type, $msg, $logFileName) {
-		$logInfo = [
-			'date' => $microTime,
-			'type' => $type,
-			'msg' => $msg,
-			'log' => '',
-			'trace' => '',
-		];
 		if ($mixedArg instanceof Exception) {
-			$logInfo['type'] = 'Exception';
-			if (!empty($logInfo['msg'])) $logInfo['msg'] .= ". ";
-			$logInfo['msg'] .= $mixedArg->getMessage();
-			$logInfo['log'] = [
+			$type = 'Exception';
+			if (!empty($msg)) $msg .= ". ";
+			$msg .= $mixedArg->getMessage();
+			$moreMsg = [
 				'code' => $mixedArg->getCode(),
 				'line' => $mixedArg->getLine(),
 				'file' => str_replace(APP_PATH_ROOT, 'SE', $mixedArg->getFile()),
 			];
-			$logInfo['trace'] = $mixedArg->getTraceAsString();// getTrace
+			$trace = $mixedArg->getTraceAsString();// getTrace
 		} else if (is_string($mixedArg)) {
 			if ('sql' == $type) {
-				if (!$logInfo['type']) $logInfo['type'] = 'sql';
-				if (empty($logInfo['msg'])) $logInfo['msg'] = "sql";
-				$logInfo['log'] = $mixedArg;
+				if (!$type) $type = 'sql';
+				if (empty($msg)) $msg = "sql";
+				$moreMsg = $mixedArg;
 			} else {
-				if (empty($logInfo['type'])) $logInfo['type'] = 'string';
+				if (empty($type)) $type = 'string';
 				if (empty($msg)) {
-					$logInfo['msg'] = $mixedArg;
-					$logInfo['log'] = '';
+					$msg = $mixedArg;
+					$moreMsg = '';
 				} else {
-					$logInfo['msg'] = $msg;
-					$logInfo['log'] = $mixedArg;
+					$moreMsg = $mixedArg;
 				}
 			}
 			ob_start();
 			debug_print_backtrace();
-			$logInfo['trace'] = ob_get_clean();
+			$trace = ob_get_clean();
 		} else if ('array' == $type || is_array($mixedArg)) {
 			$mixedArg = (array)$mixedArg;
-			if (!$logInfo['type']) $logInfo['type'] = 'array';
-			if (!empty($logInfo['msg']) && !empty($mixedArg['msg'])) $logInfo['msg'] .= ". {$mixedArg['msg']}";
-			else if (empty($logInfo['msg']) && !empty($mixedArg['msg'])) $logInfo['msg'] = $mixedArg['msg'];
+			if (!$type) $type = 'array';
+			if (!empty($msg) && !empty($mixedArg['msg'])) $msg .= ". {$mixedArg['msg']}";
+			else if (empty($msg) && !empty($mixedArg['msg'])) $msg = $mixedArg['msg'];
 			if (!empty($mixedArg['msg'])) unset($mixedArg['msg']);
-			$logInfo['log'] = $mixedArg;
+			$moreMsg = $mixedArg;
 			ob_start();
 			debug_print_backtrace();
-			$logInfo['trace'] = ob_get_clean();
+			$trace = ob_get_clean();
 		}
-		if (!empty($logInfo['trace']) && 'Exception' !== $logInfo['type']) {// remove #0 and #1 (DBG::log and DBG::_log)
-			$pos = strpos($logInfo['trace'], "\n#2");
-			// if (false !== $pos) $logInfo['trace'] = substr($logInfo['trace'], $pos + 1); // TODO
+		if (!empty($trace) && 'Exception' !== $type) {// remove #0 and #1 (DBG::log and DBG::_log)
+			$pos = strpos($trace, "\n#2");
+			// if (false !== $pos) $trace = substr($trace, $pos + 1); // TODO
 		}
-		$logInfo['trace'] = str_replace(APP_PATH_ROOT, 'SE', $logInfo['trace']);
-		$logInfo['trace'] .= (("\n" == substr($logInfo['trace'], -1)) ? '' :  "\n") . "#URI: " . V::get('REQUEST_URI', '', $_SERVER);
-		if (!$logInfo['type']) $logInfo['type'] = 'unknown';
+		$trace = str_replace(APP_PATH_ROOT, 'SE', $trace);
+		$trace .= (("\n" == substr($trace, -1)) ? '' :  "\n") . "#URI: " . V::get('REQUEST_URI', '', $_SERVER);
+		if (!$type) $type = 'unknown';
 
+		$logger->_addLog($mixedArg, $type, $msg, $trace, $moreMsg);
+	}
+
+	static function saveLogItemToFile($logFileName, $microTime, $type, $msg, $moreMsg = '', $trace = '') {
+		$logInfo = [
+			'date' => $microTime,
+			'type' => $type,
+			'msg' => $msg,
+			'log' => $moreMsg,
+			'trace' => $trace,
+		];
 		if (!empty($logInfo['trace'])) {
 			$trace = array_map(function ($part) {
 				if ('URI: ' === substr($part, 0, strlen('URI: '))) return "#{$part}";

+ 2 - 2
SE/se-lib/Route/Debug.php

@@ -585,7 +585,7 @@ class Route_Debug extends RouteBase {
 			'msg' => "TODO: ... ret({$ret}) lines(".count($contentLines).") ",
 			'type' => "error",
 			'body' => [
-				'rows' => array_filter(
+				'rows' => array_values(array_filter(
 					array_map(function ($line) use (&$lastTime, &$lp) {
 						if (empty($line)) return null;
 						$dbg = @json_decode($line, $assoc = true);
@@ -601,7 +601,7 @@ class Route_Debug extends RouteBase {
 						return $ret;
 					}, $contentLines)
 					, function ($line) { return null !== $line; }
-				),
+				)),
 				'fetchMoreLink' =>
 				($hasMoreRows)
 				?	UI::h('div', [], [