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 5.6.4版
- xdebug 2.4.0版
XDebug文档之后:
xdebug.default_enable = 0
默认值:1
如果此设置为1,则默认情况下会在错误事件中显示堆栈竞速。您可以使用xdebug_disable()禁用显示代码中的堆栈种族。由于这是Xdebug的基本功能之一,因此建议将此设置保留为1。
我宁愿在xdebug_disable()
的脚本树函数开头的某个地方使用一个适当的开关,以使其能够打开和关闭,这取决于开发状态:
define('VERBOSE', /* from config/db/etc value of true/false */ false);
if(!VERBOSE) {
xdebug_disable();
}
如果您的服务器管理员不愿意更改生产环境配置,这将给您留下更多的灵活性。