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']}{$level_color}>]";
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 {