diff --git a/src/Monolog/Formatter/LogstashFormatter.php b/src/Monolog/Formatter/LogstashFormatter.php index 902ec475..b084c4a5 100644 --- a/src/Monolog/Formatter/LogstashFormatter.php +++ b/src/Monolog/Formatter/LogstashFormatter.php @@ -57,8 +57,8 @@ class LogstashFormatter extends NormalizerFormatter */ public function __construct($applicationName, $systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_', $version = self::V0) { - // logstash requires a ISO 8601 format date - parent::__construct('c'); + // logstash requires a ISO 8601 format date with optional millisecond precision. + parent::__construct('Y-m-d\TH:i:s.uP'); $this->systemName = $systemName ?: gethostname(); $this->applicationName = $applicationName; diff --git a/tests/Monolog/Formatter/LogstashFormatterTest.php b/tests/Monolog/Formatter/LogstashFormatterTest.php index 9c77770e..b02a0988 100644 --- a/tests/Monolog/Formatter/LogstashFormatterTest.php +++ b/tests/Monolog/Formatter/LogstashFormatterTest.php @@ -35,7 +35,7 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase $message = json_decode($formatter->format($record), true); - $this->assertEquals("1970-01-01T00:00:00+00:00", $message['@timestamp']); + $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); $this->assertEquals('log', $message['@message']); $this->assertEquals('meh', $message['@fields']['channel']); $this->assertContains('meh', $message['@tags']); @@ -176,7 +176,7 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase $message = json_decode($formatter->format($record), true); - $this->assertEquals("1970-01-01T00:00:00+00:00", $message['@timestamp']); + $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); $this->assertEquals("1", $message['@version']); $this->assertEquals('log', $message['message']); $this->assertEquals('meh', $message['channel']);