Browse Source

Convert GelfMessage into string required by createAmqpMessage (#1869)

* Convert GelfMessage into string required by createAmqpMessage

* Convert object on write() too
Sebastian Muszynski 1 year ago
parent
commit
814ea500f8
1 changed files with 9 additions and 0 deletions
  1. 9 0
      src/Monolog/Handler/AmqpHandler.php

+ 9 - 0
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 @@ class AmqpHandler extends AbstractProcessingHandler
         $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 @@ class AmqpHandler extends AbstractProcessingHandler
             $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,