From 5518809798542ffe585aafea8ac07878acdf27e2 Mon Sep 17 00:00:00 2001 From: Marek Lichtner Date: Tue, 22 Jun 2021 20:30:29 +0200 Subject: [PATCH] Set "ecs.version" via ElasticCommonSchemaFormatter::__construct() Usage in Laravel: class EcsFormatter { public function __invoke($logger) { foreach ($logger->getHandlers() as $handler) { $handler->setFormatter(new ElasticCommonSchemaFormatter([], '1.5.0')); } } } --- .../Monolog/Formatter/ElasticCommonSchemaFormatter.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Elastic/Monolog/Formatter/ElasticCommonSchemaFormatter.php b/src/Elastic/Monolog/Formatter/ElasticCommonSchemaFormatter.php index baf0bd5..48c2ad1 100644 --- a/src/Elastic/Monolog/Formatter/ElasticCommonSchemaFormatter.php +++ b/src/Elastic/Monolog/Formatter/ElasticCommonSchemaFormatter.php @@ -25,7 +25,8 @@ */ class ElasticCommonSchemaFormatter extends NormalizerFormatter { - private const ECS_VERSION = '1.2.0'; + /** @var string */ + private $ecsVersion; private static $logOriginKeys = ['file' => true, 'line' => true, 'class' => true, 'function' => true]; @@ -42,10 +43,11 @@ class ElasticCommonSchemaFormatter extends NormalizerFormatter /** * @param array $tags optional tags to enrich the log lines */ - public function __construct(array $tags = []) + public function __construct(array $tags = [], $ecsVersion = '1.2.0') { parent::__construct('Y-m-d\TH:i:s.uP'); $this->tags = $tags; + $this->ecsVersion = $ecsVersion; } public function useLogOriginFromContext(bool $useLogOriginFromContext): self @@ -95,7 +97,7 @@ public function format(array $record): string } // Add "ecs.version" - $outRecord['ecs.version'] = self::ECS_VERSION; + $outRecord['ecs.version'] = $this->ecsVersion; // Add "log": { "logger": ..., ... } $outRecord['log'] = [