2016-06-19 9 views
1

은 내가 (config.yml에서, config_dev, config_test) 사방 디버그 로깅을 해제 생각 :Symfony3 + PHPUnit. 콘솔에서 디버그 로그를 비활성화하는 방법은 무엇입니까?

monolog: 
handlers: 
    main: 
     type: stream 
     path: "%kernel.logs_dir%/%kernel.environment%.log" 
     level: debug 
     channels: [!event] 
    console: 
     type: stream 
     path: "%kernel.logs_dir%/console.log" 
     level: critical 
     channels: [!event] 

을하지만 phpunit을 실행할 때 그것은 나에게 디버그 로그 보여줍니다

[2016-06-19 16:53:29] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"kernel.request","listener":"Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"} [] 
[2016-06-19 16:53:29] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"kernel.request","listener":"Symfony\\Component\\HttpKernel\\EventListener\\DumpListener::configure"} [] 
[2016-06-19 16:53:29] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"kernel.request","listener":"Symfony\\Bundle\\FrameworkBundle\\EventListener\\TestSessionListener::onKernelRequest"} [] 
[2016-06-19 16:53:29] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"kernel.request","listener":"Symfony\\Bundle\\FrameworkBundle\\EventListener\\SessionListener::onKernelRequest"} [] 
[2016-06-19 16:53:29] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"kernel.request","listener":"Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest"} [] 
[2016-06-19 16:53:29] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"kernel.request","listener":"Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"} [] 
[2016-06-19 16:53:29] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"kernel.request","listener":"Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"} [] 
[2016-06-19 16:53:29] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"kernel.request","listener":"AppBundle\\EventListener\\LocaleListener::onKernelRequest"} [] 

사용하지 않도록 설정하는 방법을 ?

+1

어떤 환경에서 문제가 발생합니까? –

+0

phpunit을 실행하므로 테스트 환경이라고 가정합니다. – Alexdevid

답변

2

이 시도합니다. 나는 또한 그 문제에 관해 약간의 문제가 있었는데, 나는 단지 내 필요에 대해 언급했다. doctrine에 대한 디버깅을 계속하려면 대괄호 안에! doctrine을 넣기 만하면됩니다. 내가 맞으면, 필요한 것.

+0

그게 전부 야! 감사합니다 – Alexdevid

+0

행복하게 나는 친구를 도울 수 있었다! –

1

테스트 환경은 app_dev.php의 응용 프로그램 커널 $kernel = new AppKernel('dev', true);에서 활성화 된 디버그 모드에서 실행되는 것 같습니다. 하나의 예외를 제외하고 프로덕션 환경에도 동일하게 적용됩니다. 두 번째 인수는 false 여야합니다. 즉, 디버그 모드가 비활성화됨을 의미합니다. php bin/console some:command --env=test --no-debug

는 phpunit을 위해 작동하지 않습니다

은 당신이 당신의 명령에 --no-debug 플래그를 전달해야 테스트 환경에서 디버그 출력, 예를 제거합니다. 당신은 dev 환경에 응용 프로그램의 커널을 무시해야 할 수 있습니다 Kris Wallsmith 블로그에서

예 :

console: 
    type: stream 
    path: "%kernel.logs_dir%/console.log" 
    level: critical 
    channels: [] 

그럼 괜찮을한다 :

class AppKernel extends Kernel 
{ 
    // ... 

    protected function initializeContainer() 
    { 
     static $first = true; 

     if ('test' !== $this->getEnvironment()) { 
      parent::initializeContainer(); 
      return; 
     } 

     $debug = $this->debug; 

     if (!$first) { 
      // disable debug mode on all but the first initialization 
      $this->debug = false; 
     } 

     // will not work with --process-isolation 
     $first = false; 

     try { 
      parent::initializeContainer(); 
     } catch (\Exception $e) { 
      $this->debug = $debug; 
      throw $e; 
     } 

     $this->debug = $debug; 
    } 
} 
+0

도움이되지 않습니다. "phpunit"명령을 실행했지만 symfony에 속하지 않습니다. 따라서'--env'와'--no-debug' 같은 옵션은 없습니다. 하지만 그 디버그 로그는 Symfony>에서 나온 것입니다. < 전체 출력 : http://pastebin.com/3BMUYuqs – Alexdevid

+0

좋은 캐치. 나는 당신이 응용 프로그램 커널을 수정해야 할 필요가 있다고 생각한다. 예를 들어 다음 URL을 따르십시오. http://kriswallsmith.net/post/27979797907/get-fast-an-easy-symfony2-phpunit-optimization. –

+0

cli 플래그 대신 환경 변수'SYMFONY_ENV'와'SYMFONY_DEBUG'가 작동합니까? –