diff --git a/src/Monolog/Handler/SyslogUdpHandler.php b/src/Monolog/Handler/SyslogUdpHandler.php index 9381f008..c6badac6 100644 --- a/src/Monolog/Handler/SyslogUdpHandler.php +++ b/src/Monolog/Handler/SyslogUdpHandler.php @@ -11,6 +11,7 @@ namespace Monolog\Handler; +use Monolog\DateTimeImmutable; use Monolog\Logger; use Monolog\Handler\SyslogUdp\UdpSocket; @@ -57,7 +58,7 @@ class SyslogUdpHandler extends AbstractSyslogHandler { $lines = $this->splitMessageIntoLines($record['formatted']); - $header = $this->makeCommonSyslogHeader($this->logLevels[$record['level']]); + $header = $this->makeCommonSyslogHeader($this->logLevels[$record['level']], $record['datetime']); foreach ($lines as $line) { $this->socket->write($line, $header); @@ -81,7 +82,7 @@ class SyslogUdpHandler extends AbstractSyslogHandler /** * Make common syslog header (see rfc5424 or rfc3164) */ - protected function makeCommonSyslogHeader(int $severity): string + protected function makeCommonSyslogHeader(int $severity, DateTimeImmutable $datetime): string { $priority = $severity + $this->facility; @@ -93,10 +94,13 @@ class SyslogUdpHandler extends AbstractSyslogHandler $hostname = '-'; } - $date = $this->getDateTime(); - if ($this->rfc === self::RFC3164) { - return "<$priority>" . + $datetime->setTimezone(new \DateTimeZone('UTC')); + } + $date = $datetime->format($this->dateFormats[$this->rfc]); + + if ($this->rfc === self::RFC3164) { + return "<$priority>" . $date . " " . $hostname . " " . $this->ident . "[" . $pid . "]: ";