Skip to content

Commit 9627de6

Browse files
committed
Support for displaying CustomLogs in PW Logs panel as interactive dumped array.
1 parent c987f23 commit 9627de6

File tree

2 files changed

+36
-16
lines changed

2 files changed

+36
-16
lines changed

TracyDebugger.module.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public static function getModuleInfo() {
2727
'summary' => __('Tracy debugger from Nette with many PW specific custom tools.', __FILE__),
2828
'author' => 'Adrian Jones',
2929
'href' => 'https://processwire.com/talk/forum/58-tracy-debugger/',
30-
'version' => '4.26.30',
30+
'version' => '4.26.31',
3131
'autoload' => 100000, // in PW 3.0.114+ higher numbers are loaded first - we want Tracy first
3232
'singular' => true,
3333
'requires' => 'ProcessWire>=2.7.2, PHP>=5.4.4',

panels/ProcesswireLogsPanel.php

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,21 +42,25 @@ public function getTab() {
4242
$errorLogs = array('errors', 'exceptions', 'files-errors');
4343

4444
if($this->wire('modules')->isInstalled('CustomLogs')) {
45-
$custom_logs = $this->wire('modules')->getModuleConfigData('CustomLogs');
45+
$custom_logs = $this->wire('modules')->get('CustomLogs');
46+
$custom_logs_config = $custom_logs->data();
4647
}
4748

4849
foreach($logs as $log) {
4950

50-
if(isset($custom_logs) && array_key_exists($log['name'], $custom_logs['customLogsParsed'])) {
51-
continue;
51+
if(isset($custom_logs) && array_key_exists($log['name'], $custom_logs_config['customLogsParsed'])) {
52+
$isCustom = true;
53+
$lines = $custom_logs->getEntries($log['name']);
5254
}
53-
54-
$lines = \TracyDebugger::tailCustom($this->wire('config')->paths->logs.$log['name'].'.txt', \TracyDebugger::getDataValue("numLogEntries"));
55-
$lines = mb_convert_encoding($lines, 'UTF-8');
56-
$lines = explode("\n", $lines);
57-
foreach($lines as $key => $line) {
58-
$entry = $this->wire('log')->lineToEntry($line);
59-
$lines[$key] = $entry;
55+
else {
56+
$isCustom = false;
57+
$lines = \TracyDebugger::tailCustom($this->wire('config')->paths->logs.$log['name'].'.txt', \TracyDebugger::getDataValue("numLogEntries"));
58+
$lines = mb_convert_encoding($lines, 'UTF-8');
59+
$lines = explode("\n", $lines);
60+
foreach($lines as $key => $line) {
61+
$entry = $this->wire('log')->lineToEntry($line);
62+
$lines[$key] = $entry;
63+
}
6064
}
6165

6266
$x=99;
@@ -73,14 +77,30 @@ public function getTab() {
7377
$logLines = $logLinesData[$log['name']]['lines'];
7478

7579
foreach($logLines as $entry) {
80+
81+
if(($isCustom && !isset($entry[0])) || (!$isCustom && !isset($entry['date']))) {
82+
continue;
83+
}
84+
7685
$itemKey = $log['name'] . '_' . $x;
77-
$entriesArr[$itemKey]['timestamp'] = @strtotime($entry['date']); // silenced in case timezone is not set
86+
$entriesArr[$itemKey]['timestamp'] = @strtotime($isCustom ? $entry[0] : $entry['date']); // silenced in case timezone is not set
7887
$entriesArr[$itemKey]['linenumber'] = 99-$x;
7988
$entriesArr[$itemKey]['order'] = $itemKey;
80-
$entriesArr[$itemKey]['date'] = $entry['date'];
81-
$entriesArr[$itemKey]['text'] = $entry['text'];
82-
$entriesArr[$itemKey]['user'] = $entry['user'];
83-
$entriesArr[$itemKey]['url'] = "<a href='".$entry['url']."'>".$entry['url']."</a>";
89+
$entriesArr[$itemKey]['date'] = $isCustom ? $entry[0] : $entry['date'];
90+
if($isCustom) {
91+
unset($entry[0]);
92+
$entry = array_values($entry);
93+
$assoc_entry = array();
94+
foreach ($entry as $key => $value) {
95+
if(isset($custom_logs_config['customLogsParsed'][$log['name']][$key])) {
96+
$assoc_entry[str_replace('{url}', '', $custom_logs_config['customLogsParsed'][$log['name']][$key])] = $value;
97+
}
98+
}
99+
$entry = $assoc_entry;
100+
}
101+
$entriesArr[$itemKey]['text'] = $isCustom ? json_encode($entry) : $entry['text'];
102+
$entriesArr[$itemKey]['user'] = $isCustom ? '' : $entry['user'];
103+
$entriesArr[$itemKey]['url'] = $isCustom ? '' : "<a href='".$entry['url']."'>".$entry['url']."</a>";
84104
$entriesArr[$itemKey]['log'] = $log['name'];
85105
$x--;
86106
$this->numLogEntries++;

0 commit comments

Comments
 (0)