From 814ea500f8a6d559075967d5b26b082ca5d2ba99 Mon Sep 17 00:00:00 2001 From: Sebastian Muszynski Date: Fri, 12 Apr 2024 13:51:55 +0200 Subject: [PATCH] Convert GelfMessage into string required by createAmqpMessage (#1869) * Convert GelfMessage into string required by createAmqpMessage * Convert object on write() too --- src/Monolog/Handler/AmqpHandler.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Monolog/Handler/AmqpHandler.php b/src/Monolog/Handler/AmqpHandler.php index 72265d4ba..27d773ea4 100644 --- a/src/Monolog/Handler/AmqpHandler.php +++ b/src/Monolog/Handler/AmqpHandler.php @@ -11,6 +11,7 @@ namespace Monolog\Handler; +use Gelf\Message as GelfMessage; use Monolog\Level; use Monolog\Formatter\FormatterInterface; use Monolog\Formatter\JsonFormatter; @@ -75,6 +76,10 @@ protected function write(LogRecord $record): void $data = $record->formatted; $routingKey = $this->getRoutingKey($record); + if($data instanceof GelfMessage) { + $data = json_encode($data->toArray()); + } + if ($this->exchange instanceof AMQPExchange) { $attributes = [ 'delivery_mode' => 2, @@ -117,6 +122,10 @@ public function handleBatch(array $records): void $record = $this->processRecord($record); $data = $this->getFormatter()->format($record); + if($data instanceof GelfMessage) { + $data = json_encode($data->toArray()); + } + $this->exchange->batch_basic_publish( $this->createAmqpMessage($data), $this->exchangeName,