[HttpKernel] Fix error logger when stderr is redirected to /dev/null (FPM)
This commit is contained in:
parent
cb7e78c809
commit
5f829bdaeb
@ -37,10 +37,10 @@ class Logger extends AbstractLogger
|
|||||||
private $formatter;
|
private $formatter;
|
||||||
private $handle;
|
private $handle;
|
||||||
|
|
||||||
public function __construct($minLevel = null, $output = 'php://stderr', callable $formatter = null)
|
public function __construct($minLevel = null, $output = null, callable $formatter = null)
|
||||||
{
|
{
|
||||||
if (null === $minLevel) {
|
if (null === $minLevel) {
|
||||||
$minLevel = 'php://stdout' === $output || 'php://stderr' === $output ? LogLevel::CRITICAL : LogLevel::WARNING;
|
$minLevel = null === $output || 'php://stdout' === $output || 'php://stderr' === $output ? LogLevel::ERROR : LogLevel::WARNING;
|
||||||
|
|
||||||
if (isset($_ENV['SHELL_VERBOSITY']) || isset($_SERVER['SHELL_VERBOSITY'])) {
|
if (isset($_ENV['SHELL_VERBOSITY']) || isset($_SERVER['SHELL_VERBOSITY'])) {
|
||||||
switch ((int) (isset($_ENV['SHELL_VERBOSITY']) ? $_ENV['SHELL_VERBOSITY'] : $_SERVER['SHELL_VERBOSITY'])) {
|
switch ((int) (isset($_ENV['SHELL_VERBOSITY']) ? $_ENV['SHELL_VERBOSITY'] : $_SERVER['SHELL_VERBOSITY'])) {
|
||||||
@ -58,7 +58,7 @@ class Logger extends AbstractLogger
|
|||||||
|
|
||||||
$this->minLevelIndex = self::$levels[$minLevel];
|
$this->minLevelIndex = self::$levels[$minLevel];
|
||||||
$this->formatter = $formatter ?: [$this, 'format'];
|
$this->formatter = $formatter ?: [$this, 'format'];
|
||||||
if (false === $this->handle = \is_resource($output) ? $output : @fopen($output, 'a')) {
|
if ($output && false === $this->handle = \is_resource($output) ? $output : @fopen($output, 'a')) {
|
||||||
throw new InvalidArgumentException(sprintf('Unable to open "%s".', $output));
|
throw new InvalidArgumentException(sprintf('Unable to open "%s".', $output));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,7 +77,11 @@ class Logger extends AbstractLogger
|
|||||||
}
|
}
|
||||||
|
|
||||||
$formatter = $this->formatter;
|
$formatter = $this->formatter;
|
||||||
@fwrite($this->handle, $formatter($level, $message, $context));
|
if ($this->handle) {
|
||||||
|
@fwrite($this->handle, $formatter($level, $message, $context));
|
||||||
|
} else {
|
||||||
|
error_log($formatter($level, $message, $context, false));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -86,7 +90,7 @@ class Logger extends AbstractLogger
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function format($level, $message, array $context)
|
private function format($level, $message, array $context, $prefixDate = true)
|
||||||
{
|
{
|
||||||
if (false !== strpos($message, '{')) {
|
if (false !== strpos($message, '{')) {
|
||||||
$replacements = [];
|
$replacements = [];
|
||||||
@ -105,6 +109,11 @@ class Logger extends AbstractLogger
|
|||||||
$message = strtr($message, $replacements);
|
$message = strtr($message, $replacements);
|
||||||
}
|
}
|
||||||
|
|
||||||
return sprintf('%s [%s] %s', date(\DateTime::RFC3339), $level, $message).PHP_EOL;
|
$log = sprintf('[%s] %s', $level, $message).PHP_EOL;
|
||||||
|
if ($prefixDate) {
|
||||||
|
$log = date(\DateTime::RFC3339).' '.$log;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $log;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user