From 5085630fd606c50d9b09efa0f93c0bdd83603d24 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Mon, 7 Mar 2016 12:29:57 +0000 Subject: [PATCH] Fix SlackHandler bug where slack drops some messages if the socket is closed too early, fixes #729 --- src/Monolog/Handler/SlackHandler.php | 4 ++++ src/Monolog/Handler/SocketHandler.php | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/Monolog/Handler/SlackHandler.php b/src/Monolog/Handler/SlackHandler.php index c5428759..ac2af023 100644 --- a/src/Monolog/Handler/SlackHandler.php +++ b/src/Monolog/Handler/SlackHandler.php @@ -241,6 +241,10 @@ class SlackHandler extends SocketHandler protected function write(array $record) { parent::write($record); + $res = $this->getResource(); + if (is_resource($res)) { + @fread($res, 2048); + } $this->closeSocket(); } diff --git a/src/Monolog/Handler/SocketHandler.php b/src/Monolog/Handler/SocketHandler.php index f8d60ea2..c458b1ca 100644 --- a/src/Monolog/Handler/SocketHandler.php +++ b/src/Monolog/Handler/SocketHandler.php @@ -255,6 +255,14 @@ class SocketHandler extends AbstractProcessingHandler return (string) $record['formatted']; } + /** + * @return resource|null + */ + protected function getResource() + { + return $this->resource; + } + private function connect() { $this->createSocketResource();