来自服务的 monolog 自定义服务访问

monolog custom service access from a service

拜托,有没有一种快速的方法可以在 an_other_service 服务中提供 monolog 服务,而无需将 monolog 服务引用作为来自控制器的参数传递?

确切地说,我已经创建了一个写入特定日志文件的自定义独白频道。通常在控制器中,我使用

获得我的独白自定义服务
$this->logger = $this->container->get('monolog.logger.test');

现在,当我调用 an_other_service 服务的方法时,我的自定义日志服务将记录器的实例作为参数传递。 在 an_other_service 服务中有没有明确的方法来访问自定义独白?和正常的独白服务?

在您的服务中注入服务。

class ServiceCustom 
{
    private $logger;

    public function setLogger(YourLoggerClass $logger)
    {
        $this->logger= $logger;
    }

    // ...
}


services:
    service_custom:
        class:     Namespace/ServiceCustom
        arguments: []
        calls:
            - [setLogger, ["@monolog.logger.test"]]

Documentation