从服务访问monolog自定义服务

时间:2015-06-18 08:54:49

标签: php symfony monolog

请问,是否有一种快速方法可以在an_other_service服务中提供monolog服务,而无需将monolog服务引用作为参数传递给控制器​​?

我确实创建了一个自定义的monolog通道,该通道写入特定的日志文件。通常在控制器中我使用

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

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

1 个答案:

答案 0 :(得分:1)

在您的服务中注入服务。

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