J'ai eu un problème étrange en utilisant le service de l'enregistreur dans Symfony 2:Symfony 2 Injecter service enregistreur
Lors de l'injection de l'enregistreur à un service, je reçois une erreur de type parce LoggerInterface prévu, mais Symfony \ pont \ Monologue \ Logger donné .
De plus, si j'essaie d'injecter un enregistreur personnalisé, j'obtiens une erreur en raison d'un service non défini.
Voici mon code:
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"]
Service:
<?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;
}
injection également l'enregistreur avec @monolog. logger.paymentlog est givin g moi une erreur "service non défini"
Quelqu'un peut-il me dire où je me trompe?
THX beaucoup.
Que voulez-vous? Voulez-vous un enregistreur personnalisé pour payment.log? –
Lisez la [documentation] (http://symfony.com/doc/current/reference/dic_tags.html#dic-tags-monolog). Aussi: [This] (http://symfony.com/doc/current/logging.html#using-a-logger-inside-a-service). – ccKep
@ccKep: Merci pour cet indice, après avoir résolu le problème avec mon espace de noms cela a fait l'affaire. Et oui je voulais avoir un enregistreur personnalisé pour le journal de paiement, mais je ne pouvais pas utiliser un canal séparé pour cela, car cela me donnerait des erreurs. – user1827297