我在symfony中2使用記錄器服務一個奇怪的問題:Symfony的2注射記錄器服務
當注射記錄到服務,我得到一個類型錯誤,因爲LoggerInterface預期,但Symfony的\橋\獨白\記錄儀給出。
此外,如果我嘗試注入一個自定義記錄器,我得到錯誤,因爲未定義的服務。
這裏是我的代碼:
confiy.yml
monolog:
channels: ['payment']
handlers:
paymentlog:
type: stream
path: "%kernel.logs_dir%/payment.log"
level: debug
channels: [payment]
service.yml
#payment_services
payment.gateway_payments:
class: AppBundle\Service\paymentService
arguments: ["@service_container", "@doctrine.orm.entity_manager", "@logger"]
服務:
<?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;
}
而且注射用@monolog記錄器。 logger.paymentlog是givin g我錯誤「undefinded service」
有人可以告訴我我錯在哪裏嗎?
THX很多。
你想幹什麼?您是否想要payment.log自定義記錄器? –
閱讀[documentation](http://symfony.com/doc/current/reference/dic_tags.html#dic-tags-monolog)。另外:[This](http://symfony.com/doc/current/logging.html#using-a-logger-inside-a-service)。 – ccKep
@ccKep:感謝您的提示,在解決了我的命名空間問題之後,這確實實現了。是的,我想有一個自定義記錄器的付款日誌,但不能使用一個單獨的渠道,因爲它會給我錯誤。 – user1827297