From 78bb0252b4a1ecc47cc30117076b718d4be48388 Mon Sep 17 00:00:00 2001 From: Kevin Bond Date: Thu, 26 Apr 2018 10:36:33 -0400 Subject: [PATCH] [Messenger] unwrap ReceivedMessage in LoggingMiddleware to improve log detail --- .../Middleware/LoggingMiddleware.php | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Component/Messenger/Middleware/LoggingMiddleware.php b/src/Symfony/Component/Messenger/Middleware/LoggingMiddleware.php index 99e2ad1a9530..5f4f981c575b 100644 --- a/src/Symfony/Component/Messenger/Middleware/LoggingMiddleware.php +++ b/src/Symfony/Component/Messenger/Middleware/LoggingMiddleware.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Messenger\Middleware; +use Symfony\Component\Messenger\Asynchronous\Transport\ReceivedMessage; use Symfony\Component\Messenger\MiddlewareInterface; use Psr\Log\LoggerInterface; @@ -31,28 +32,33 @@ public function __construct(LoggerInterface $logger) */ public function handle($message, callable $next) { - $this->logger->debug('Starting handling message {class}', array( - 'message' => $message, - 'class' => \get_class($message), - )); + $this->logger->debug('Starting handling message {class}', $this->createContext($message)); try { $result = $next($message); } catch (\Throwable $e) { - $this->logger->warning('An exception occurred while handling message {class}', array( - 'message' => $message, - 'exception' => $e, - 'class' => \get_class($message), + $this->logger->warning('An exception occurred while handling message {class}', array_merge( + $this->createContext($message), + array('exception' => $e) )); throw $e; } - $this->logger->debug('Finished handling message {class}', array( - 'message' => $message, - 'class' => \get_class($message), - )); + $this->logger->debug('Finished handling message {class}', $this->createContext($message)); return $result; } + + private function createContext($message): array + { + if ($message instanceof ReceivedMessage) { + $message = $message->getMessage(); + } + + return array( + 'message' => $message, + 'class' => \get_class($message), + ); + } }