EugenGanshorn / GuzzleBundleRetryPlugin

Retry Plugin for EightPointsGuzzleBundle
MIT License
5 stars 14 forks source link

Dependency on a non-existent logging service when EightPointsGuzzleBundle logging is disabled #6

Closed Stollie closed 2 years ago

Stollie commented 4 years ago

There is a dependency on the eight_points_guzzle logger class. When logging is disabled on eight_points_guzzle this class is not defined by the extension.

This gives the following error;

The service "guzzle_bundle_retry_plugin.middleware.retry.xxx" has a dependency on a non-existent service "eight_points_guzzle.middleware.log.class".

Location:

public function loadForClient(array $config, ContainerBuilder $container, string $clientName, Definition $handler): void
{
    if ($config['retry_enabled']) {
        $logger = new Definition(Logger::class);
        $logger->addMethodCall('setLogger', [new Reference('monolog.logger.eight_points_guzzle')]);
        $logger->addMethodCall('setFormatter', [new Reference('eight_points_guzzle.symfony_log_formatter')]);

        $middleware = new Definition(GuzzleRetryMiddleware::class);
        $middleware->setFactory([GuzzleRetryMiddleware::class, 'factory']);
        $middleware->setArguments([
            [
                'max_retry_attempts'               => $config['max_retry_attempts'],
                'retry_only_if_retry_after_header' => $config['retry_only_if_retry_after_header'],
                'retry_on_status'                  => $config['retry_on_status'],
                'default_retry_multiplier'         => $config['default_retry_multiplier'],
                'retry_on_timeout'                 => $config['retry_on_timeout'],
                'expose_retry_header'              => $config['expose_retry_header'],
                'retry_header'                     => $config['retry_header'],
                'on_retry_callback'                => [$logger, 'callback'],
            ],
        ]);
Stollie commented 4 years ago

Or is the best solution to turn on logging?