Hello
J'ai suivis ce tuto : https://nehalist.io/logging-events-t...se-in-symfony/
Mais je n'y arrive pas j'ai l'erreur :
Attempted to call an undefined method named "info" of class "AcMarche\LoggerBundle\Service\MonologDBHandler
Je comprends pas pq j'ai bien tout suivi...
Mon service.yml
mon config_dev.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 services: monolog.db_handler: class: AcMarche\LoggerBundle\Service\MonologDBHandler arguments: ['@doctrine.orm.entity_manager']
Mon handler:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 monolog: channels: ['db'] handlers: main: type: stream path: '%kernel.logs_dir%/%kernel.environment%.log' level: debug channels: ['!event'] console: type: console process_psr_3_messages: false channels: ['!event', '!doctrine', '!console'] db: channels: ['db'] type: service id: monolog.db_handler
Mon controlleur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 use AcMarche\LoggerBundle\Entity\Log; use Doctrine\ORM\EntityManagerInterface; use Monolog\Handler\AbstractProcessingHandler; class MonologDBHandler extends AbstractProcessingHandler { /** * @var EntityManagerInterface */ protected $em; /** * MonologDBHandler constructor. * @param EntityManagerInterface $em */ public function __construct(EntityManagerInterface $em) { parent::__construct(); $this->em = $em; } /** * Called when writing to our database * @param array $record */ protected function write(array $record) { $logEntry = new Log(); $logEntry->setMessage($record['message']); $logEntry->setLevel($record['level']); $logEntry->setLevelName($record['level_name']); $logEntry->setExtra($record['extra']); $logEntry->setContext($record['context']); $this->em->persist($logEntry); $this->em->flush(); } }
Bref du gros copier coller j'ai du zapper un truc quelque part...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 /** * @Route("/") */ public function indexAction() { $log = $this->get('monolog.db_handler'); $log->info( 'something happened', [ 'foo' => 'bar', ] ); return $this->render('AcMarcheLoggerBundle:Default:index.html.twig'); }
Merci
Partager