[Messenger] Use "warning" intead of "error" log level for RecoverableException

This commit is contained in:
Grégoire Pineau 2020-12-08 10:59:12 +01:00
parent 4da4f50837
commit a885ba844d

View File

@ -12,6 +12,7 @@ namespace Symfony\Component\Messenger\EventListener;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent; use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent;
@ -70,7 +71,18 @@ class SendFailedMessageForRetryListener implements EventSubscriberInterface
$delay = $retryStrategy->getWaitingTime($envelope, $throwable); $delay = $retryStrategy->getWaitingTime($envelope, $throwable);
if (null !== $this->logger) { if (null !== $this->logger) {
$this->logger->error('Error thrown while handling message {class}. Sending for retry #{retryCount} using {delay} ms delay. Error: "{error}"', $context + ['retryCount' => $retryCount, 'delay' => $delay, 'error' => $throwable->getMessage(), 'exception' => $throwable]); $logLevel = LogLevel::ERROR;
if ($throwable instanceof RecoverableExceptionInterface) {
$logLevel = LogLevel::WARNING;
} elseif ($throwable instanceof HandlerFailedException) {
foreach ($throwable->getNestedExceptions() as $nestedException) {
if ($nestedException instanceof RecoverableExceptionInterface) {
$logLevel = LogLevel::WARNING;
break;
}
}
}
$this->logger->log($logLevel, 'Error thrown while handling message {class}. Sending for retry #{retryCount} using {delay} ms delay. Error: "{error}"', $context + ['retryCount' => $retryCount, 'delay' => $delay, 'error' => $throwable->getMessage(), 'exception' => $throwable]);
} }
// add the delay and retry stamp info // add the delay and retry stamp info