diff --git a/system/src/Grav/Common/Helpers/LogViewer.php b/system/src/Grav/Common/Helpers/LogViewer.php index 6a7fb3445..465d27373 100644 --- a/system/src/Grav/Common/Helpers/LogViewer.php +++ b/system/src/Grav/Common/Helpers/LogViewer.php @@ -79,6 +79,12 @@ class LogViewer return trim($output); } + /** + * Helper class to get level color + * + * @param $level + * @return mixed|string + */ public static function levelColor($level) { $colors = [ @@ -121,10 +127,21 @@ class LogViewer 'logger' => $data['logger'], 'level' => $data['level'], 'message' => $data['message'], - 'trace' => $data['trace'] ?? null, + 'trace' => isset($data['trace']) ? $this->parseTrace($data['trace']) : null, 'context' => json_decode($data['context'], true), 'extra' => json_decode($data['extra'], true) ); } + /** + * Parse text of trace into an array of lines + * + * @param $trace + * @return array + */ + public static function parseTrace($trace) + { + return array_filter(preg_split('/#\d*/m', $trace)); + } + } diff --git a/system/src/Grav/Console/Cli/LogViewerCommand.php b/system/src/Grav/Console/Cli/LogViewerCommand.php index 09eed4a63..77c9e96dd 100644 --- a/system/src/Grav/Console/Cli/LogViewerCommand.php +++ b/system/src/Grav/Console/Cli/LogViewerCommand.php @@ -71,14 +71,14 @@ class LogViewerCommand extends ConsoleCommand if ($date instanceof \DateTime) { $output = "{$log['date']->format('Y-m-d h:i:s')} [<{$level_color}>{$log['level']}]"; if ($log['trace'] && $verbose) { - $output .= " {$log['message']} - {$log['trace']}"; + $output .= " {$log['message']}\n"; + foreach ((array) $log['trace'] as $index => $tracerow) { + $output .= "{$index}${tracerow}\n"; + } } else { $output .= " {$log['message']}"; } $io->writeln($output); - if ($verbose) { - $io->newLine(); - } } } } else {