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
打开时页面上有完整的堆栈跟踪。可能吗?我无法找到与仅记录消息相关的任何选项,并在页面上显示跟踪。
答案 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();
}
如果您的管理员持有您不愿意更改生产环境配置的服务器,那么您将获得更大的灵活性。