如何让Xdebug在打开页面时只显示回溯,而不是记录回溯?

时间:2016-05-02 14:29:26

标签: php apache2 xdebug

Xdebug当前将整个回溯记录在已定义的error_log文件中:

CustomLog /var/log/www/access.log combined
ErrorLog /var/log/www/error.log
php_value error_log /var/log/www/error.log

这很好。但是,它记录太多了。自从我安装Xdebug以来,它就像这样记录:

[02-May-2016 16:14:20 Europe/Berlin] PHP Notice:  Undefined variable: k in /var/www/index.php on line 30
[02-May-2016 16:14:20 Europe/Berlin] PHP Stack trace:
[02-May-2016 16:14:20 Europe/Berlin] PHP   1. {main}() /var/www/index.php:0

重复约10次。我完全没有这样的错误信息:

[02-May-2016 16:14:20 Europe/Berlin] PHP Notice:  Undefined variable: k in /var/www/index.php on line 30

打开时页面上有完整的堆栈跟踪。可能吗?我无法找到与仅记录消息相关的任何选项,并在页面上显示跟踪。

  • PHP Version 5.6.4
  • xdebug version 2.4.0

1 个答案:

答案 0 :(得分:3)

XDebug个文档之后:

xdebug.default_enable = 0
  

默认值:1

     

如果此设置为1,则默认情况下将在错误事件中显示stacktraces。您可以使用xdebug_disable()禁用代码中的堆栈跟踪。由于这是Xdebug的基本功能之一,建议将此设置设置为1。

我宁愿在xdebug_disable()的脚本树函数的开头使用适当的开关,以便能够打开和关闭它,取决于开发状态:

define('VERBOSE', /* from config/db/etc value of true/false */ false);
if(!VERBOSE) {
    xdebug_disable();
}

如果您的管理员持有您不愿意更改生产环境配置的服务器,那么您将获得更大的灵活性。