Parcourir la source

Remove empty lines if a custom stack trace parser returns null, fixes #1925

Jordi Boggiano il y a 1 an
Parent
commit
074503850b

+ 1 - 1
src/Monolog/Formatter/LineFormatter.php

@@ -309,6 +309,6 @@ class LineFormatter extends NormalizerFormatter
 
     private function stacktracesParserCustom(string $trace): string
     {
-        return implode("\n", array_filter(array_map($this->stacktracesParser, explode("\n", $trace)), fn ($line) => $line !== false && $line !== ''));
+        return implode("\n", array_filter(array_map($this->stacktracesParser, explode("\n", $trace)), fn ($line) => is_string($line) && trim($line) !== ''));
     }
 }

+ 1 - 2
tests/Monolog/Formatter/LineFormatterTest.php

@@ -193,10 +193,9 @@ class LineFormatterTest extends TestCase
         });
 
         $message = $formatter->format($this->getRecord(Level::Critical, context: ['exception' => new \RuntimeException('Foo')]));
-
         $trace = explode('[stacktrace]', $message, 2)[1];
-
         $this->assertStringNotContainsString('#', $trace);
+        $this->assertSame(PHP_EOL . PHP_EOL . '"} []' . PHP_EOL, $trace);
     }
 
     public function testDefFormatWithPreviousException()