Parcourir la source

Fix SlackHandler bug where slack drops some messages if the socket is closed too early, fixes #729

Jordi Boggiano il y a 9 ans
Parent
commit
5085630fd6
2 fichiers modifiés avec 12 ajouts et 0 suppressions
  1. 4 0
      src/Monolog/Handler/SlackHandler.php
  2. 8 0
      src/Monolog/Handler/SocketHandler.php

+ 4 - 0
src/Monolog/Handler/SlackHandler.php

@@ -241,6 +241,10 @@ class SlackHandler extends SocketHandler
     protected function write(array $record)
     protected function write(array $record)
     {
     {
         parent::write($record);
         parent::write($record);
+        $res = $this->getResource();
+        if (is_resource($res)) {
+            @fread($res, 2048);
+        }
         $this->closeSocket();
         $this->closeSocket();
     }
     }
 
 

+ 8 - 0
src/Monolog/Handler/SocketHandler.php

@@ -255,6 +255,14 @@ class SocketHandler extends AbstractProcessingHandler
         return (string) $record['formatted'];
         return (string) $record['formatted'];
     }
     }
 
 
+    /**
+     * @return resource|null
+     */
+    protected function getResource()
+    {
+        return $this->resource;
+    }
+
     private function connect()
     private function connect()
     {
     {
         $this->createSocketResource();
         $this->createSocketResource();