Переглянути джерело

updated DBG - added URI, POST, GET on first line

Piotr Labudda 9 роки тому
батько
коміт
ff21437e1d
2 змінених файлів з 44 додано та 20 видалено
  1. 25 9
      SE/se-lib/DBG.php
  2. 19 11
      SE/se-lib/Route/Debug.php

+ 25 - 9
SE/se-lib/DBG.php

@@ -128,19 +128,33 @@ class DBG {
 	/**
 	 * @param $mixedArg string or Exception
 	 */
-	public static function log($mixedArg, $type = '') {
+	public static function log($mixedArg, $type = '', $msg = '') {
 		if (!self::isActive()) return;
+		if ('Debug' == V::get('_route', '', $_REQUEST) && !V::get('DBG', '', $_REQUEST)) return;
+		static $_firstRun = true;
+		if ($_firstRun) {
+			$_firstRun = false;
+			self::_log([
+				'msg' => V::get('REQUEST_METHOD', '', $_SERVER) . " " . V::get('REQUEST_URI', '', $_SERVER),
+				'POST' => $_POST,
+				'GET' => $_GET,
+			]);
+		}
+		self::_log($mixedArg, $type, $msg);
+	}
+	public static function _log($mixedArg, $type = 'unknown', $msg = '') {
 		// * TODO: debug to file based on session_id (/tmp/se-debug-{$date("Y-m-d")}-{$login}_{$ip}_{$session_id}.log)
 		$logInfo = [
 			'date' => date("Y-m-d H:i:s"),
-			'type' => 'unknown',
-			'msg' => '',
+			'type' => $type,
+			'msg' => $msg,
 			'log' => '',
 			'trace' => '',
 		];
 		if ($mixedArg instanceof Exception) {
 			$logInfo['type'] = 'Exception';
-			$logInfo['msg'] = $mixedArg->getMessage();
+			if (!empty($logInfo['msg'])) $logInfo['msg'] .= ". ";
+			$logInfo['msg'] .= $mixedArg->getMessage();
 			$logInfo['log'] = [
 				'code' => $mixedArg->getCode(),
 				'line' => $mixedArg->getLine(),
@@ -149,11 +163,11 @@ class DBG {
 			$logInfo['trace'] = $mixedArg->getTraceAsString();// getTrace
 		} else if (is_string($mixedArg)) {
 			if ('sql' == $type) {
-				$logInfo['type'] = 'sql';
-				$logInfo['msg'] = 'sql';
+				if ('unknown' == $logInfo['type']) $logInfo['type'] = 'sql';
+				if (empty($logInfo['msg'])) $logInfo['msg'] = "sql";
 				$logInfo['log'] = $mixedArg;
 			} else {
-				$logInfo['type'] = 'string';
+				if (empty($logInfo['type'])) $logInfo['type'] = 'string';
 				$logInfo['msg'] = $mixedArg;
 				$logInfo['log'] = '';
 			}
@@ -161,8 +175,10 @@ class DBG {
 			debug_print_backtrace();
 			$logInfo['trace'] = ob_get_clean();
 		} else if (is_array($mixedArg)) {
-			$logInfo['type'] = 'array';
-			$logInfo['msg'] = V::get('msg', '', $mixedArg);
+			if ('unknown' == $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 (!empty($mixedArg['msg'])) unset($mixedArg['msg']);
 			$logInfo['log'] = $mixedArg;
 			ob_start();
 			debug_print_backtrace();

+ 19 - 11
SE/se-lib/Route/Debug.php

@@ -218,23 +218,29 @@ class Route_Debug extends RouteBase {
           }
           return [
             'date' => '<nobr>' . $dbg['date'] . '</nobr>',
+            '@style[date]' => "width:1%",
             'type' => $dbg['type'],
-            'msg' => $dbg['msg'],
+            '@style[type]' => "width:1%",
+            'msg' => UI::h('div', ['style'=>'max-width:360px; overflow-x:auto'], $dbg['msg']),
             // 'log' => (!empty($dbg['log'])) ? json_encode($dbg['log']) : '',
-            'log' => UI::h('div', [
+            '@style[msg]' => "width:360px",
+            'log' => UI::h('div', [], [
+              UI::h('div', [
                 'title' => htmlspecialchars( ('sql' == $dbg['type'] && is_string($dbg['log'])) ? $dbg['log'] : var_export($dbg['log'], true) ),
                 'onClick' => "return p5DBG__showLogTrace(this, event)",
                 'style' => "cursor:pointer"
-              ], str_replace(array('\n', '\t'), ' ', substr(htmlspecialchars(json_encode($dbg['log'])), 0, 100)) . ' ...'
-            ),
-            'trace' => UI::h('div', [
+              ], str_replace(array('\n', '\t'), ' ', substr(htmlspecialchars(json_encode($dbg['log'])), 0, 100)) . ' ...')
+            ]),
+            'trace' => UI::h('div', [], [
+              UI::h('div', [
                 'title' => htmlspecialchars($dbg['trace']),
                 'onClick' => "return p5DBG__showLogTrace(this, event)",
                 'style' => "cursor:pointer"
               ], ('Exception' == $dbg['type'])
                 ? "Code: {$dbg['log']['code']}, File: {$dbg['log']['file']}"
                 : '...'
-            ),
+              )
+            ]),
           ];
         },
         explode("\n", $content)
@@ -244,16 +250,18 @@ class Route_Debug extends RouteBase {
       function p5DBG__showLogTrace(n, e) {
         if (!e) return false;
         if (e.target && 'PRE' == e.target.tagName) return false;
-        if (n.lastChild.tagName == 'PRE') {
-          if ('none' == n.lastChild.style.display) {
-            n.lastChild.style.display = 'block'
+        var preNode = n.parentNode.lastChild
+        if (preNode.tagName == 'PRE') {
+          if ('none' == preNode.style.display) {
+            preNode.style.display = 'block'
           } else {
-            n.lastChild.style.display = 'none'
+            preNode.style.display = 'none'
           }
         } else {
           var pre = document.createElement('pre')
           pre.appendChild( document.createTextNode(n.title) )
-          n.appendChild(pre)
+          pre.style.maxWidth = '600px'
+          n.parentNode.appendChild(pre)
         }
       }
     ");