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,