|
27 | 27 | use Sentry\SentryBundle\Tracing\Twig\TwigTracingExtension; |
28 | 28 | use Sentry\Serializer\RepresentationSerializer; |
29 | 29 | use Sentry\Serializer\Serializer; |
| 30 | +use Sentry\Transport\TransportFactoryInterface; |
30 | 31 | use Symfony\Bundle\TwigBundle\TwigBundle; |
31 | 32 | use Symfony\Component\Cache\CacheItem; |
32 | 33 | use Symfony\Component\Config\FileLocator; |
@@ -124,14 +125,21 @@ private function registerConfiguration(ContainerBuilder $container, array $confi |
124 | 125 | ->setPublic(false) |
125 | 126 | ->setArgument(0, new Reference('sentry.client.options')); |
126 | 127 |
|
| 128 | + $loggerReference = null === $config['logger'] |
| 129 | + ? new Reference(NullLogger::class, ContainerBuilder::IGNORE_ON_INVALID_REFERENCE) |
| 130 | + : new Reference($config['logger']); |
| 131 | + |
| 132 | + $factoryBuilderDefinition = $container->getDefinition(TransportFactoryInterface::class); |
| 133 | + $factoryBuilderDefinition->setArgument('$logger', $loggerReference); |
| 134 | + |
127 | 135 | $clientBuilderDefinition = (new Definition(ClientBuilder::class)) |
128 | 136 | ->setArgument(0, new Reference('sentry.client.options')) |
129 | 137 | ->addMethodCall('setSdkIdentifier', [SentryBundle::SDK_IDENTIFIER]) |
130 | 138 | ->addMethodCall('setSdkVersion', [PrettyVersions::getVersion('sentry/sentry-symfony')->getPrettyVersion()]) |
131 | 139 | ->addMethodCall('setTransportFactory', [new Reference($config['transport_factory'])]) |
132 | 140 | ->addMethodCall('setSerializer', [$serializer]) |
133 | 141 | ->addMethodCall('setRepresentationSerializer', [$representationSerializerDefinition]) |
134 | | - ->addMethodCall('setLogger', [null !== $config['logger'] ? new Reference($config['logger']) : new Reference(NullLogger::class, ContainerBuilder::IGNORE_ON_INVALID_REFERENCE)]); |
| 142 | + ->addMethodCall('setLogger', [$loggerReference]); |
135 | 143 |
|
136 | 144 | $container |
137 | 145 | ->setDefinition('sentry.client', new Definition(Client::class)) |
|
0 commit comments