2016-06-19 11 views
1

Ich glaube, ich Debug-Protokollierung überall ausgeschaltet (in config.yml, config_dev, config_test):Symfony3 + PHPUnit. Wie deaktiviere ich das Debug Log in der Konsole?

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] 

aber wenn ich phpunit ausführen es zeigt mir Debug-Log:

[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"} [] 

Wie es deaktivieren ?

+1

In welcher Umgebung sind Sie mit dem Problem konfrontiert? –

+0

Ich laufe phpunit, also nehme ich an, es ist Test env. – Alexdevid

Antwort

2

Wenn Sie versuchen, diese:

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

Dann sollte es in Ordnung sein. Ich hatte auch einige Probleme damit, ich habe es nur für meine Bedürfnisse kommentiert. Wenn Sie noch etwas Debugging für die Doktrin wünschen, setzen Sie einfach! Doktrin in die Klammern. Wenn ich dich richtig verstehe, ist das was du brauchst.

+0

Das ist es! Danke – Alexdevid

+0

Happy ich könnte dir helfen! –

1

Die Testumgebung scheint im Debug-Modus zu laufen, der im Applikationskern $kernel = new AppKernel('dev', true); in app_dev.php aktiviert ist. Dasselbe gilt für die Produktionsumgebung mit einer Ausnahme: Das zweite Argument sollte falsch sein, was bedeutet, dass der Debug-Modus deaktiviert ist. es wird nicht funktionieren php bin/console some:command --env=test --no-debug

Für PHPUnit:

Um die Debug-Ausgabe in der Testumgebung Sie die --no-debug Flagge auf Ihren Befehl, Beispiel passieren müssen loszuwerden. Sie können den Kern Ihrer Anwendung für dev Umgebung außer Kraft setzen müssen:

Beispiel von Kris Wallsmith Blog:

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

Es hilft nicht. Der Befehl, den ich ausführe - "phpunit", gehört nicht zu symfony. Es hat also keine Optionen wie '-env' und' --no-debug'. Aber dieses Debugprotokoll geht irgendwie von Symfony>. < Volle Ausgabe: http://pastebin.com/3BMUYuqs – Alexdevid

+0

Guter Fang. Ich denke, dass Sie möglicherweise Ihren Anwendungskernel/für die "Entwickler" -Umgebung ändern müssen. Für ein Beispiel folgen Sie dieser URL: http://kriswallsmith.net/post/27979797907/get-fast-an-easy-symfony2-phpunit-optimization. –

+0

anstatt der CLI-Flags funktionieren die Umgebungsvariablen 'SYMFONY_ENV' und' SYMFONY_DEBUG'? –