diff options
author | ont <ont.rif@gmail.com> | 2017-03-15 00:57:06 +0700 |
---|---|---|
committer | ont <ont.rif@gmail.com> | 2017-03-15 00:57:06 +0700 |
commit | aa6e88b6de881647f4c94a055fa024d774e172dc (patch) | |
tree | 0bfc979c3f59c0aa5b1d990cbade1c55fc94fc01 | |
parent | 1e044bc4b34e91743943479f1be7a1d5eb93add0 (diff) | |
download | monolog-aa6e88b6de881647f4c94a055fa024d774e172dc.zip monolog-aa6e88b6de881647f4c94a055fa024d774e172dc.tar.gz monolog-aa6e88b6de881647f4c94a055fa024d774e172dc.tar.bz2 |
Complete rfc5424 header for SyslogUdpHandler
WARN: this commit adds backward incompatibility for the SyslogUdpHandler
constructor.
-rw-r--r-- | src/Monolog/Handler/SyslogUdpHandler.php | 23 | ||||
-rw-r--r-- | tests/Monolog/Handler/SyslogUdpHandlerTest.php | 19 |
2 files changed, 36 insertions, 6 deletions
diff --git a/src/Monolog/Handler/SyslogUdpHandler.php b/src/Monolog/Handler/SyslogUdpHandler.php index 74d946a..fb4dac8 100644 --- a/src/Monolog/Handler/SyslogUdpHandler.php +++ b/src/Monolog/Handler/SyslogUdpHandler.php @@ -22,18 +22,22 @@ use Monolog\Handler\SyslogUdp\UdpSocket; class SyslogUdpHandler extends AbstractSyslogHandler { protected $socket; + protected $ident; /** * @param string $host * @param int $port + * @param string $ident Program name or tag for each log message. * @param mixed $facility * @param int $level The minimum logging level at which this handler will be triggered * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not */ - public function __construct($host, $port = 514, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true) + public function __construct($host, $port = 514, $ident = 'php', $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true) { parent::__construct($facility, $level, $bubble); + $this->ident = $ident; + $this->socket = new UdpSocket($host, $port ?: 514); } @@ -69,7 +73,22 @@ class SyslogUdpHandler extends AbstractSyslogHandler { $priority = $severity + $this->facility; - return "<$priority>1 "; + if(!$pid = getmypid()) + $pid = '-'; + + if(!$hostname = gethostname()) + $hostname = '-'; + + return "<$priority>1 ". + $this->getDateTime()." ". + $hostname." ". + $this->ident." ". + $pid." - - "; + } + + protected function getDateTime() + { + return date(\DateTime::RFC3339); } /** diff --git a/tests/Monolog/Handler/SyslogUdpHandlerTest.php b/tests/Monolog/Handler/SyslogUdpHandlerTest.php index aa4a334..9e5fab1 100644 --- a/tests/Monolog/Handler/SyslogUdpHandlerTest.php +++ b/tests/Monolog/Handler/SyslogUdpHandlerTest.php @@ -23,21 +23,32 @@ class SyslogUdpHandlerTest extends TestCase */ public function testWeValidateFacilities() { - $handler = new SyslogUdpHandler("ip", null, "invalidFacility"); + $handler = new SyslogUdpHandler("ip", null, "php", "invalidFacility"); } public function testWeSplitIntoLines() { - $handler = new SyslogUdpHandler("127.0.0.1", 514, "authpriv"); + $time = '2014-01-07T12:34'; + $pid = getmypid(); + $host = gethostname(); + + $handler = $this->getMockBuilder('\Monolog\Handler\SyslogUdpHandler') + ->setConstructorArgs(["127.0.0.1", 514, "php", "authpriv"]) + ->setMethods(['getDateTime']) + ->getMock(); + + $handler->method('getDateTime') + ->willReturn($time); + $handler->setFormatter(new \Monolog\Formatter\ChromePHPFormatter()); $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('write'), array('lol', 'lol')); $socket->expects($this->at(0)) ->method('write') - ->with("lol", "<".(LOG_AUTHPRIV + LOG_WARNING).">1 "); + ->with("lol", "<".(LOG_AUTHPRIV + LOG_WARNING).">1 $time $host php $pid - - "); $socket->expects($this->at(1)) ->method('write') - ->with("hej", "<".(LOG_AUTHPRIV + LOG_WARNING).">1 "); + ->with("hej", "<".(LOG_AUTHPRIV + LOG_WARNING).">1 $time $host php $pid - - "); $handler->setSocket($socket); |