tagName = $tagName; } public function process(ContainerBuilder $container): void { $channelExtractor = new LogChannelExtractor(); foreach ($container->findTaggedServiceIds($this->tagName) as $id => $tags) { $definition = $container->findDefinition($id); if (!$definition->isAutowired() || $definition->isAbstract()) { continue; } $channel = $id; if ($definition->getClass()) { $reflectionClass = $container->getReflectionClass($definition->getClass(), false); if ($reflectionClass) { $channel = $channelExtractor->getClassChannelName($reflectionClass) ?? $definition->getClass(); } } $logger = new Definition(Logger::class); $logger->setFactory([new Reference(LogManager::class), 'getLogger']); $logger->setArguments([$channel]); $logger->setShared(false); $definition->addMethodCall('setLogger', [$logger]); } } }