小编use*_*297的帖子

Symfony 2注入记录器服务

使用symfony 2中的logger服务时遇到一个奇怪的问题:

将记录器注入服务时,出现类型错误,因为需要LoggerInterface,但是给出了Symfony \ Bridge \ Monolog \ Logger。

另外,如果我尝试注入自定义记录器,也会由于未定义服务而出错。

这是我的代码:

保密

monolog:
channels: ['payment']
handlers:
    paymentlog:
        type: stream
        path: "%kernel.logs_dir%/payment.log"
        level: debug
        channels: [payment]
Run Code Online (Sandbox Code Playgroud)

service.yml

#payment_services
  payment.gateway_payments:
    class: AppBundle\Service\paymentService
    arguments: ["@service_container", "@doctrine.orm.entity_manager", "@logger"]
Run Code Online (Sandbox Code Playgroud)

服务:

<?php

  namespace AppBundle\Service;

  use Symfony\Component\DependencyInjection\ContainerInterface;
  use Doctrine\ORM\EntityManager;
  use Symfony\Component\HttpKernel\Log\LoggerInterface;

  class paymentService {

    private $container;
    private $em;
    private $logger;

    public function __construct(ContainerInterface $container, EntityManager $em, LoggerInterface $logger){
    $this->container = $container;
    $this->em = $em;
    $this->logger = $logger;
}
Run Code Online (Sandbox Code Playgroud)

还向记录器注入@ monolog.logger.paymentlog会给我一个错误“未定义的服务”

有人可以告诉我我哪里错了吗?

多谢。

service logging symfony monolog

5
推荐指数
1
解决办法
3757
查看次数

标签 统计

logging ×1

monolog ×1

service ×1

symfony ×1