mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-12 13:32:16 +09:00
Reorder debug entries for easy viewing
This commit is contained in:
parent
70acafb8ea
commit
cad4f37485
2 changed files with 67 additions and 43 deletions
|
|
@ -277,12 +277,12 @@ class Debug
|
||||||
|
|
||||||
// Create a log entry.
|
// Create a log entry.
|
||||||
$entry = (object)array(
|
$entry = (object)array(
|
||||||
'type' => 'Debug',
|
|
||||||
'time' => microtime(true),
|
|
||||||
'message' => unserialize(serialize($message)),
|
'message' => unserialize(serialize($message)),
|
||||||
'file' => isset($backtrace[0]['file']) ? $backtrace[0]['file'] : null,
|
'file' => isset($backtrace[0]['file']) ? $backtrace[0]['file'] : null,
|
||||||
'line' => isset($backtrace[0]['line']) ? $backtrace[0]['line'] : 0,
|
'line' => isset($backtrace[0]['line']) ? $backtrace[0]['line'] : 0,
|
||||||
'backtrace' => $backtrace,
|
'backtrace' => $backtrace,
|
||||||
|
'time' => microtime(true),
|
||||||
|
'type' => 'Debug',
|
||||||
);
|
);
|
||||||
self::$_entries[] = $entry;
|
self::$_entries[] = $entry;
|
||||||
|
|
||||||
|
|
@ -333,12 +333,12 @@ class Debug
|
||||||
|
|
||||||
// Prepare the error entry.
|
// Prepare the error entry.
|
||||||
self::$_errors[] = $errinfo = (object)array(
|
self::$_errors[] = $errinfo = (object)array(
|
||||||
'type' => self::getErrorType($errno),
|
|
||||||
'time' => microtime(true),
|
|
||||||
'message' => $message,
|
'message' => $message,
|
||||||
'file' => $errfile,
|
'file' => $errfile,
|
||||||
'line' => $errline,
|
'line' => $errline,
|
||||||
'backtrace' => $backtrace,
|
'backtrace' => $backtrace,
|
||||||
|
'time' => microtime(true),
|
||||||
|
'type' => self::getErrorType($errno),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Add the entry to the error log.
|
// Add the entry to the error log.
|
||||||
|
|
@ -364,18 +364,18 @@ class Debug
|
||||||
|
|
||||||
// Prepare the log entry.
|
// Prepare the log entry.
|
||||||
$query_object = (object)array(
|
$query_object = (object)array(
|
||||||
'type' => 'Query',
|
'query_id' => $query['query_id'],
|
||||||
'time' => microtime(true),
|
'query_time' => floatval($query['elapsed_time']),
|
||||||
|
'query_string' => $query['query'],
|
||||||
|
'query_connection' => $query['connection'],
|
||||||
'message' => $query['result'] === 'success' ? 'success' : $query['errstr'],
|
'message' => $query['result'] === 'success' ? 'success' : $query['errstr'],
|
||||||
'error_code' => $query['result'] === 'success' ? 0 : $query['errno'],
|
'error_code' => $query['result'] === 'success' ? 0 : $query['errno'],
|
||||||
'query_id' => $query['query_id'],
|
|
||||||
'query_connection' => $query['connection'],
|
|
||||||
'query_string' => $query['query'],
|
|
||||||
'query_time' => floatval($query['elapsed_time']),
|
|
||||||
'file' => $query['called_file'],
|
'file' => $query['called_file'],
|
||||||
'line' => $query['called_line'],
|
'line' => $query['called_line'],
|
||||||
'method' => $query['called_method'],
|
'method' => $query['called_method'],
|
||||||
'backtrace' => $query['backtrace'] ?: array(),
|
'backtrace' => $query['backtrace'] ?: array(),
|
||||||
|
'time' => microtime(true),
|
||||||
|
'type' => 'Query',
|
||||||
);
|
);
|
||||||
|
|
||||||
self::$_queries[] = $query_object;
|
self::$_queries[] = $query_object;
|
||||||
|
|
@ -385,12 +385,12 @@ class Debug
|
||||||
if ($query['result'] === 'error')
|
if ($query['result'] === 'error')
|
||||||
{
|
{
|
||||||
$error_object = (object)array(
|
$error_object = (object)array(
|
||||||
'type' => 'Query Error',
|
|
||||||
'time' => $query_object->time,
|
|
||||||
'message' => $query['errstr'] . ' (code ' . intval($query['errno']) . ')',
|
'message' => $query['errstr'] . ' (code ' . intval($query['errno']) . ')',
|
||||||
'file' => $query_object->file,
|
'file' => $query_object->file,
|
||||||
'line' => $query_object->line,
|
'line' => $query_object->line,
|
||||||
'backtrace' => $query_object->backtrace ?: array(),
|
'backtrace' => $query_object->backtrace ?: array(),
|
||||||
|
'time' => $query_object->time,
|
||||||
|
'type' => 'Query Error',
|
||||||
);
|
);
|
||||||
|
|
||||||
self::$_errors[] = $error_object;
|
self::$_errors[] = $error_object;
|
||||||
|
|
@ -424,16 +424,16 @@ class Debug
|
||||||
|
|
||||||
// Prepare the log entry.
|
// Prepare the log entry.
|
||||||
$trigger_object = (object)array(
|
$trigger_object = (object)array(
|
||||||
'type' => 'Trigger',
|
|
||||||
'time' => microtime(true),
|
|
||||||
'message' => null,
|
|
||||||
'file' => null,
|
|
||||||
'line' => null,
|
|
||||||
'backtrace' => array(),
|
|
||||||
'trigger_name' => $trigger['name'],
|
'trigger_name' => $trigger['name'],
|
||||||
'trigger_target' => $trigger['target'],
|
'trigger_target' => $trigger['target'],
|
||||||
'trigger_plugin' => $trigger['target_plugin'],
|
'trigger_plugin' => $trigger['target_plugin'],
|
||||||
'trigger_time' => $trigger['elapsed_time'],
|
'trigger_time' => $trigger['elapsed_time'],
|
||||||
|
'message' => null,
|
||||||
|
'file' => null,
|
||||||
|
'line' => null,
|
||||||
|
'backtrace' => array(),
|
||||||
|
'time' => microtime(true),
|
||||||
|
'type' => 'Trigger',
|
||||||
);
|
);
|
||||||
|
|
||||||
self::$_triggers[] = $trigger_object;
|
self::$_triggers[] = $trigger_object;
|
||||||
|
|
@ -458,14 +458,14 @@ class Debug
|
||||||
|
|
||||||
// Prepare the log entry.
|
// Prepare the log entry.
|
||||||
$widget_object = (object)array(
|
$widget_object = (object)array(
|
||||||
'type' => 'Widget',
|
'widget_name' => $widget['name'],
|
||||||
'time' => microtime(true),
|
'widget_time' => $widget['elapsed_time'],
|
||||||
'message' => null,
|
'message' => null,
|
||||||
'file' => null,
|
'file' => null,
|
||||||
'line' => null,
|
'line' => null,
|
||||||
'backtrace' => array(),
|
'backtrace' => array(),
|
||||||
'widget_name' => $widget['name'],
|
'time' => microtime(true),
|
||||||
'widget_time' => $widget['elapsed_time'],
|
'type' => 'Widget',
|
||||||
);
|
);
|
||||||
|
|
||||||
self::$_widgets[] = $widget_object;
|
self::$_widgets[] = $widget_object;
|
||||||
|
|
@ -490,16 +490,16 @@ class Debug
|
||||||
|
|
||||||
// Prepare the log entry.
|
// Prepare the log entry.
|
||||||
$request_object = (object)array(
|
$request_object = (object)array(
|
||||||
'type' => 'Remote Request',
|
|
||||||
'time' => microtime(true),
|
|
||||||
'message' => null,
|
|
||||||
'url' => $request['url'],
|
'url' => $request['url'],
|
||||||
'status' => $request['status'],
|
'status' => $request['status'],
|
||||||
|
'elapsed_time' => $request['elapsed_time'],
|
||||||
|
'message' => null,
|
||||||
'file' => $request['called_file'],
|
'file' => $request['called_file'],
|
||||||
'line' => $request['called_line'],
|
'line' => $request['called_line'],
|
||||||
'method' => $request['called_method'],
|
'method' => $request['called_method'],
|
||||||
'backtrace' => $request['backtrace'],
|
'backtrace' => $request['backtrace'],
|
||||||
'elapsed_time' => $request['elapsed_time'],
|
'time' => microtime(true),
|
||||||
|
'type' => 'Remote Request',
|
||||||
);
|
);
|
||||||
|
|
||||||
self::$_remote_requests[] = $request_object;
|
self::$_remote_requests[] = $request_object;
|
||||||
|
|
@ -784,14 +784,14 @@ class Debug
|
||||||
'memory' => memory_get_peak_usage(),
|
'memory' => memory_get_peak_usage(),
|
||||||
'timing' => (object)array(
|
'timing' => (object)array(
|
||||||
'total' => sprintf('%0.4f sec', microtime(true) - \RX_MICROTIME),
|
'total' => sprintf('%0.4f sec', microtime(true) - \RX_MICROTIME),
|
||||||
'template' => sprintf('%0.4f sec (count: %d)', $GLOBALS['__template_elapsed__'] ?? 0, $GLOBALS['__TemplateHandlerCalled__'] ?? 0),
|
|
||||||
'xmlparse' => sprintf('%0.4f sec', $GLOBALS['__xmlparse_elapsed__'] ?? 0),
|
|
||||||
'db_query' => sprintf('%0.4f sec (count: %d)', self::$_query_time, count(self::$_queries)),
|
'db_query' => sprintf('%0.4f sec (count: %d)', self::$_query_time, count(self::$_queries)),
|
||||||
'db_class' => sprintf('%0.4f sec', max(0, $db->getTotalElapsedTime() - self::$_query_time)),
|
'db_class' => sprintf('%0.4f sec', max(0, $db->getTotalElapsedTime() - self::$_query_time)),
|
||||||
'session' => sprintf('%0.4f sec', self::$_session_time),
|
|
||||||
'layout' => sprintf('%0.4f sec', $GLOBALS['__layout_compile_elapsed__'] ?? 0),
|
'layout' => sprintf('%0.4f sec', $GLOBALS['__layout_compile_elapsed__'] ?? 0),
|
||||||
'widget' => sprintf('%0.4f sec', $GLOBALS['__widget_excute_elapsed__'] ?? 0),
|
'widget' => sprintf('%0.4f sec', $GLOBALS['__widget_excute_elapsed__'] ?? 0),
|
||||||
'remote' => sprintf('%0.4f sec', $GLOBALS['__remote_request_elapsed__'] ?? 0),
|
'remote' => sprintf('%0.4f sec', $GLOBALS['__remote_request_elapsed__'] ?? 0),
|
||||||
|
'session' => sprintf('%0.4f sec', self::$_session_time),
|
||||||
|
'xmlparse' => sprintf('%0.4f sec', $GLOBALS['__xmlparse_elapsed__'] ?? 0),
|
||||||
|
'template' => sprintf('%0.4f sec (count: %d)', $GLOBALS['__template_elapsed__'] ?? 0, $GLOBALS['__TemplateHandlerCalled__'] ?? 0),
|
||||||
'trans' => sprintf('%0.4f sec', $GLOBALS['__trans_content_elapsed__'] ?? 0),
|
'trans' => sprintf('%0.4f sec', $GLOBALS['__trans_content_elapsed__'] ?? 0),
|
||||||
),
|
),
|
||||||
'entries' => self::$_entries,
|
'entries' => self::$_entries,
|
||||||
|
|
@ -803,6 +803,15 @@ class Debug
|
||||||
'slow_remote_requests' => self::$_slow_remote_requests,
|
'slow_remote_requests' => self::$_slow_remote_requests,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Clean up the querystring.
|
||||||
|
if (isset($data->queries))
|
||||||
|
{
|
||||||
|
foreach ($data->queries as $query)
|
||||||
|
{
|
||||||
|
$query->query_string = trim(utf8_normalize_spaces($query->query_string, true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Clean up the backtrace.
|
// Clean up the backtrace.
|
||||||
foreach (array('entries', 'errors', 'queries', 'slow_queries', 'remote_requests', 'slow_remote_requests') as $key)
|
foreach (array('entries', 'errors', 'queries', 'slow_queries', 'remote_requests', 'slow_remote_requests') as $key)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -15,13 +15,14 @@ Response Body Size: <?php echo $data->response->size . "\n"; ?>
|
||||||
Page Generation Time
|
Page Generation Time
|
||||||
====================
|
====================
|
||||||
Total Time: <?php echo $data->timing->total . "\n"; ?>
|
Total Time: <?php echo $data->timing->total . "\n"; ?>
|
||||||
Template Compile Time: <?php echo $data->timing->template . "\n"; ?>
|
|
||||||
XML Parsing Time: <?php echo $data->timing->xmlparse . "\n"; ?>
|
|
||||||
DB Query Time: <?php echo $data->timing->db_query . "\n"; ?>
|
DB Query Time: <?php echo $data->timing->db_query . "\n"; ?>
|
||||||
DB Processing Time: <?php echo $data->timing->db_class . "\n"; ?>
|
DB Processing Time: <?php echo $data->timing->db_class . "\n"; ?>
|
||||||
Layout Processing Time: <?php echo $data->timing->layout . "\n"; ?>
|
Layout Processing Time: <?php echo $data->timing->layout . "\n"; ?>
|
||||||
Widget Processing Time: <?php echo $data->timing->widget . "\n"; ?>
|
Widget Processing Time: <?php echo $data->timing->widget . "\n"; ?>
|
||||||
Remote Request Time: <?php echo $data->timing->remote . "\n"; ?>
|
Remote Request Time: <?php echo $data->timing->remote . "\n"; ?>
|
||||||
|
Session Lock Wait Time: <?php echo $data->timing->session . "\n"; ?>
|
||||||
|
XML Parsing Time: <?php echo $data->timing->xmlparse . "\n"; ?>
|
||||||
|
Template Compile Time: <?php echo $data->timing->template . "\n"; ?>
|
||||||
Content Transform Time: <?php echo $data->timing->trans . "\n"; ?>
|
Content Transform Time: <?php echo $data->timing->trans . "\n"; ?>
|
||||||
|
|
||||||
Resource Usage
|
Resource Usage
|
||||||
|
|
@ -98,18 +99,25 @@ Database Queries
|
||||||
$query_caller = sprintf('%s line %d (%s)', $query->file, $query->line, $query->method);
|
$query_caller = sprintf('%s line %d (%s)', $query->file, $query->line, $query->method);
|
||||||
$query_result = ($query->message === 'success') ? 'success' : $query->message;
|
$query_result = ($query->message === 'success') ? 'success' : $query->message;
|
||||||
echo sprintf('%02d. %s', ++$query_count, $query->query_string) . "\n";
|
echo sprintf('%02d. %s', ++$query_count, $query->query_string) . "\n";
|
||||||
echo sprintf(' - Caller: %s', $query_caller) . "\n";
|
if (empty($query->backtrace))
|
||||||
foreach ($query->backtrace ?? [] as $key => $backtrace)
|
|
||||||
{
|
{
|
||||||
if (isset($backtrace['file']) && isset($backtrace['line']))
|
echo sprintf(' - Caller: %s', $query_caller) . "\n";
|
||||||
{
|
|
||||||
echo sprintf(' %s line %d', $backtrace['file'], $backtrace['line']) . "\n";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
echo sprintf(' - Connection: %s', $query->query_connection) . "\n";
|
echo sprintf(' - Connection: %s', $query->query_connection) . "\n";
|
||||||
echo sprintf(' - Query ID: %s', $query->query_id) . "\n";
|
echo sprintf(' - Query ID: %s', $query->query_id) . "\n";
|
||||||
echo sprintf(' - Query Time: %0.4f sec', $query->query_time) . "\n";
|
echo sprintf(' - Query Time: %0.4f sec', $query->query_time) . "\n";
|
||||||
echo sprintf(' - Result: %s', $query_result) . "\n";
|
echo sprintf(' - Result: %s', $query_result) . "\n";
|
||||||
|
if (!empty($query->backtrace))
|
||||||
|
{
|
||||||
|
echo sprintf(' - Call Stack: %s', $query_caller) . "\n";
|
||||||
|
foreach ($query->backtrace ?? [] as $key => $backtrace)
|
||||||
|
{
|
||||||
|
if (isset($backtrace['file']) && isset($backtrace['line']))
|
||||||
|
{
|
||||||
|
echo sprintf(' %s line %d', $backtrace['file'], $backtrace['line']) . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
@ -128,18 +136,25 @@ Slow Queries
|
||||||
$query_caller = sprintf('%s line %d (%s)', $query->file, $query->line, $query->method);
|
$query_caller = sprintf('%s line %d (%s)', $query->file, $query->line, $query->method);
|
||||||
$query_result = ($query->message === 'success') ? 'success' : sprintf('error %d %s', $query->error_code, $query->message);
|
$query_result = ($query->message === 'success') ? 'success' : sprintf('error %d %s', $query->error_code, $query->message);
|
||||||
echo sprintf('%02d. %s', ++$query_count, $query->query_string) . "\n";
|
echo sprintf('%02d. %s', ++$query_count, $query->query_string) . "\n";
|
||||||
echo sprintf(' - Caller: %s', $query_caller) . "\n";
|
if (empty($query->backtrace))
|
||||||
foreach ($query->backtrace ?? [] as $key => $backtrace)
|
|
||||||
{
|
{
|
||||||
if (isset($backtrace['file']) && isset($backtrace['line']))
|
echo sprintf(' - Caller: %s', $query_caller) . "\n";
|
||||||
{
|
|
||||||
echo sprintf(' %s line %d', $backtrace['file'], $backtrace['line']) . "\n";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
echo sprintf(' - Connection: %s', $query->query_connection) . "\n";
|
echo sprintf(' - Connection: %s', $query->query_connection) . "\n";
|
||||||
echo sprintf(' - Query ID: %s', $query->query_id) . "\n";
|
echo sprintf(' - Query ID: %s', $query->query_id) . "\n";
|
||||||
echo sprintf(' - Query Time: %0.4f sec', $query->query_time) . "\n";
|
echo sprintf(' - Query Time: %0.4f sec', $query->query_time) . "\n";
|
||||||
echo sprintf(' - Result: %s', $query_result) . "\n";
|
echo sprintf(' - Result: %s', $query_result) . "\n";
|
||||||
|
if (!empty($query->backtrace))
|
||||||
|
{
|
||||||
|
echo sprintf(' - Call Stack: %s', $query_caller) . "\n";
|
||||||
|
foreach ($query->backtrace as $key => $backtrace)
|
||||||
|
{
|
||||||
|
if (isset($backtrace['file']) && isset($backtrace['line']))
|
||||||
|
{
|
||||||
|
echo sprintf(' %s line %d', $backtrace['file'], $backtrace['line']) . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue