summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoront <ont.rif@gmail.com>2017-03-15 00:57:06 +0700
committeront <ont.rif@gmail.com>2017-03-15 00:57:06 +0700
commitaa6e88b6de881647f4c94a055fa024d774e172dc (patch)
tree0bfc979c3f59c0aa5b1d990cbade1c55fc94fc01
parent1e044bc4b34e91743943479f1be7a1d5eb93add0 (diff)
downloadmonolog-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.php23
-rw-r--r--tests/Monolog/Handler/SyslogUdpHandlerTest.php19
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);