Symfony3+;PHPUnit。如何在控制台中禁用调试日志?
我想我关闭了所有地方的调试日志记录(在config.yml、config\u dev、config\u test中): 但当我运行phpunit时,它会显示调试日志:Symfony3+;PHPUnit。如何在控制台中禁用调试日志?,symfony,logging,phpunit,monolog,Symfony,Logging,Phpunit,Monolog,我想我关闭了所有地方的调试日志记录(在config.yml、config\u dev、config\u test中): 但当我运行phpunit时,它会显示调试日志: [2016-06-19 16:53:29] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"kernel.request","listener":"Symfony\\Component\\HttpKernel\\EventListe
[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"} []
如何禁用它?测试环境似乎在调试模式下运行,该模式在应用程序内核中启用
$kernel=new-AppKernel('dev',true)代码>在app_dev.php中。生产环境也是如此,但有一个例外:第二个参数应该是false,这意味着调试模式被禁用
要在测试环境中消除调试输出,需要将--no debug
标志传递给命令,例如:
php-bin/console-some:command--env=test--no-debug
对于PHPUnit来说,这是行不通的。您可能需要覆盖dev
环境的应用程序内核:
博客中的示例:
如果您尝试以下方法:
console:
type: stream
path: "%kernel.logs_dir%/console.log"
level: critical
channels: []
那就好了。我也有一些问题,我只是出于我的需要把它注释掉了。
如果你还想对条令进行一些调试,就把它放进去吧!括号中的原则。
如果我没弄错,这就是您需要的。您在什么环境下面临这个问题?我运行phpunit,所以我认为它是test env。它没有帮助。我运行的命令-“phpunit”,它不属于symfony。因此它没有像--env
和--no debug
这样的选项。但是调试日志不知何故来自Symfony>dev
environment/修改应用程序内核。例如,按照以下URL进行操作:。环境变量SYMFONY_ENV
和SYMFONY_DEBUG
工作,而不是cli标志?很高兴我能帮助dude!
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;
}
}
console:
type: stream
path: "%kernel.logs_dir%/console.log"
level: critical
channels: []