diff --git a/src/Monolog/Handler/SyslogUdp/UdpSocket.php b/src/Monolog/Handler/SyslogUdp/UdpSocket.php index c43bc156..371edb49 100644 --- a/src/Monolog/Handler/SyslogUdp/UdpSocket.php +++ b/src/Monolog/Handler/SyslogUdp/UdpSocket.php @@ -28,7 +28,14 @@ class UdpSocket { $this->ip = $ip; $this->port = $port; - $this->socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); + $domain = AF_INET; + $protocol = SOL_UDP; + // Check if we are using unix sockets. + if ($port === 0) { + $domain = AF_UNIX; + $protocol = IPPROTO_IP; + } + $this->socket = socket_create($domain, SOCK_DGRAM, $protocol); } public function write($line, $header = "") diff --git a/src/Monolog/Handler/SyslogUdpHandler.php b/src/Monolog/Handler/SyslogUdpHandler.php index c85ef5b8..4c8a6c0f 100644 --- a/src/Monolog/Handler/SyslogUdpHandler.php +++ b/src/Monolog/Handler/SyslogUdpHandler.php @@ -51,7 +51,7 @@ class SyslogUdpHandler extends AbstractSyslogHandler $this->ident = $ident; $this->rfc = $rfc; - $this->socket = new UdpSocket($host, $port ?: 514); + $this->socket = new UdpSocket($host, $port); } protected function write(array $record): void