2015-06-07 6 views
1

Я искал эту информацию на этом форуме и многие другие, но я не могу понять, как регистрировать сообщения в профилировщике.symfony2 logger в профилировщике

Я пытаюсь регистрировать сообщения с моего контроллера.

CalendarController.php:

<?php 

namespace DJU\CalendarBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpFoundation\JsonResponse; 

use Symfony\Component\Console\Event\ConsoleExceptionEvent; 
use Psr\Log\LoggerInterface; 



class CalendarController extends Controller 
{ 
    protected $logger; 
    public function __construct(LoggerInterface $logger) { 
     $this->logger = $logger; 
    } 

    public function getweekAction() { 
     $this->logger->info("this is a test message"); 
    } 
} 

Согласно тому, что я прочитал в симфони документ, я также изменил config.yml

приложение/Config/config.yml

monolog: 
 
    handlers: 
 
     main: 
 
      type: stream 
 
      path: "%kernel.logs_dir%/%kernel.environment%.log" 
 
      level: debug 
 
     console: 
 
      type: console 
 
      bubble: false 
 
      verbosity_levels: 
 
       VERBOSITY_VERBOSE: INFO 
 
       VERBOSITY_VERY_VERBOSE: DEBUG 
 
      channels: ["!doctrine"] 
 
     console_very_verbose: 
 
      type: console 
 
      bubble: false 
 
      verbosity_levels: 
 
       VERBOSITY_VERBOSE: NOTICE 
 
       VERBOSITY_VERY_VERBOSE: NOTICE 
 
       VERBOSITY_DEBUG: DEBUG 
 
      channels: ["doctrine"]

Это простой полицейский y вставить из config_dev.yml.

В профилировщике нет журнала.

Любое предложение?

Спасибо

+0

вы исправите ваше сообщение в dev.log файлов? – Matteo

ответ

0

какая версия symfony? если вы на Symfony 2.6 или выше, вы можете просто сделать dump('some log');, и он появится в профилировщике.

http://symfony.com/blog/new-in-symfony-2-6-vardumper-component

+0

Спасибо за ваш быстрый ответ. Моя версия - 2.6.6, я пробовал команду дампа без успеха. У меня все еще нет ничего в журнале (debug или info) или в дампе. – mctroubleshooter

2

Если вы используете конструктор в классе контроллера, то вы должны использовать controller as service вводить регистратор там. Обычно, если вы хотите вызвать регистратор службу от контроллера вы можете просто получить его из контейнера:

class CalendarController extends Controller 
{ 
    public function getweekAction() { 
     $this->get('logger')->info("this is a test message"); 
    } 
} 
+0

Привет, Артем. Спасибо. Я удалил функцию конструктора соответственно и просто оставлю команду, о которой вы упоминали в своем сообщении, еще не успел. Я также посмотрел в app/log/dev.log, но не могу найти мой «это тест». Должен ли я удалить монологическую конфигурацию в config.yml? – mctroubleshooter

+0

Я пробовал с вашей конфигурацией монолога и имел успех с ним. Вы должны копать в другом месте, тогда я думаю. –

+0

Да, вы были правы. Спасибо, я просматриваю свои маршруты и обнаружил, что я не на правильном контроллере ... Еще раз спасибо Артем – mctroubleshooter