Skip to content

Commit 1ad0a00

Browse files
committed
Console: Review ConsoleLogger
- Pass debug messages to `Console::debug()` so caller is output
1 parent 78ef1f2 commit 1ad0a00

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

src/Toolkit/Console/ConsoleLogger.php

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
use Throwable;
1111

1212
/**
13-
* A PSR-3 logger backed by a console service
13+
* @api
1414
*/
1515
class ConsoleLogger implements LoggerInterface
1616
{
@@ -27,6 +27,9 @@ class ConsoleLogger implements LoggerInterface
2727

2828
private Console $Console;
2929

30+
/**
31+
* @api
32+
*/
3033
public function __construct(Console $console)
3134
{
3235
$this->Console = $console;
@@ -93,7 +96,8 @@ public function info($message, array $context = [])
9396
*/
9497
public function debug($message, array $context = [])
9598
{
96-
$this->log(LogLevel::DEBUG, $message, $context);
99+
$msg1 = $this->applyContext((string) $message, $context, $ex);
100+
$this->Console->debug($msg1, null, $ex, 1);
97101
}
98102

99103
/**
@@ -105,6 +109,16 @@ public function log($level, $message, array $context = [])
105109
throw new InvalidArgumentException('Invalid log level');
106110
}
107111

112+
$msg1 = $this->applyContext((string) $message, $context, $ex);
113+
$level = self::LOG_LEVEL_MAP[$level];
114+
$this->Console->message($msg1, null, $level, Console::TYPE_STANDARD, $ex);
115+
}
116+
117+
/**
118+
* @param mixed[] $context
119+
*/
120+
private function applyContext(string $message, array $context, ?Throwable &$ex): string
121+
{
108122
if ($context) {
109123
foreach ($context as $key => $value) {
110124
$replace['{' . $key . '}'] = Format::value($value);
@@ -115,16 +129,10 @@ public function log($level, $message, array $context = [])
115129
isset($context['exception'])
116130
&& $context['exception'] instanceof Throwable
117131
) {
118-
$exception = $context['exception'];
132+
$ex = $context['exception'];
119133
}
120134
}
121135

122-
$this->Console->message(
123-
(string) $message,
124-
null,
125-
self::LOG_LEVEL_MAP[$level],
126-
Console::TYPE_STANDARD,
127-
$exception ?? null,
128-
);
136+
return $message;
129137
}
130138
}

tests/3rdparty/Toolkit/PsrLog/LoggerTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,13 @@ public function getLogger(): LoggerInterface
4343
public function getLogs(): array
4444
{
4545
foreach ($this->Target->getMessages() as [$level, $message]) {
46+
if (
47+
$level === Console::LEVEL_DEBUG
48+
&& Str::startsWith($message, '{')
49+
&& ($pos = strpos($message, '} ')) !== false
50+
) {
51+
$message = substr($message, $pos + 2);
52+
}
4653
$logs[] = sprintf('%s %s', Str::lower(substr(Reflect::getConstantName(HasMessageLevel::class, $level), 6)), $message);
4754
}
4855
return $logs ?? [];

0 commit comments

Comments
 (0)