Skip to content

Commit

Permalink
[HttpKernel] Remove EOL when using error_log() in HttpKernel Logger
Browse files Browse the repository at this point in the history
  • Loading branch information
cyve committed Oct 16, 2022
1 parent a449800 commit 27463e1
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/Symfony/Component/HttpKernel/Log/Logger.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public function log($level, $message, array $context = [])

$formatter = $this->formatter;
if ($this->handle) {
@fwrite($this->handle, $formatter($level, $message, $context));
@fwrite($this->handle, $formatter($level, $message, $context).\PHP_EOL);
} else {
error_log($formatter($level, $message, $context, false));
}
Expand All @@ -105,7 +105,7 @@ private function format(string $level, string $message, array $context, bool $pr
$message = strtr($message, $replacements);
}

$log = sprintf('[%s] %s', $level, $message).\PHP_EOL;
$log = sprintf('[%s] %s', $level, $message);
if ($prefixDate) {
$log = date(\DateTime::RFC3339).' '.$log;
}
Expand Down
22 changes: 21 additions & 1 deletion src/Symfony/Component/HttpKernel/Tests/Log/LoggerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ public function testContextExceptionKeyCanBeExceptionOrOtherValues()
public function testFormatter()
{
$this->logger = new Logger(LogLevel::DEBUG, $this->tmpFile, function ($level, $message, $context) {
return json_encode(['level' => $level, 'message' => $message, 'context' => $context]).\PHP_EOL;
return json_encode(['level' => $level, 'message' => $message, 'context' => $context]);
});

$this->logger->error('An error', ['foo' => 'bar']);
Expand All @@ -196,6 +196,26 @@ public function testFormatter()
'{"level":"warning","message":"A warning","context":{"baz":"bar"}}',
], $this->getLogs());
}

public function testLogsWithoutOutput()
{
$oldErrorLog = ini_set('error_log', $this->tmpFile);

$logger = new Logger();
$logger->error('test');
$logger->critical('test');

$expected = [
'[error] test',
'[critical] test',
];

foreach ($this->getLogs() as $k => $line) {
self::assertThat(1 === preg_match('/\[[\w\/\-: ]+\] '.preg_quote($expected[$k]).'/', $line), self::isTrue(), "\"$line\" do not match expected pattern \"$expected[$k]\"");
}

ini_set('error_log', $oldErrorLog);
}
}

class DummyTest
Expand Down

0 comments on commit 27463e1

Please sign in to comment.