Lines 100.00% 6 / 6
Functions and Methods 100.00% 1 / 1
Classes and Traits 100.00% 1 / 1
Name Lines Functions and Methods CRAP Classes and Traits
StackTraceLineFormatter 100.00% 6 / 6 100.00% 1 / 1 2 100.00% 1 / 1
 format 100.00% 6 / 6 100.00% 1 / 1 2
1<?php
2
3declare(strict_types=1);
4
5namespace Stewart\Runtime\Logging;
6
7use Monolog\Formatter\LineFormatter;
8use Monolog\LogRecord;
9
10final class StackTraceLineFormatter extends LineFormatter
11{
12    public function format(LogRecord $record): string
13    {
14        $trace = $record->extra[ExceptionContextProcessor::TRACE_KEY] ?? null;
15
16        if (!\is_string($trace)) {
17            return parent::format($record);
18        }
19
20        $extra = $record->extra;
21        unset($extra[ExceptionContextProcessor::TRACE_KEY]);
22
23        return parent::format($record->with(extra: $extra)) . $trace . "\n";
24    }
25}