当读取我的错误日志时,我注意到在Exception跟踪中截断了长参数(例如SQL字符串)。这是一个例子:
FR_Model
。php(204):FR_Base->查询('INSERT INTO pos ...',数组)
我想要一种简单的方法来回显整个参数,而不必滚动我自己的Exception子类。 TIA。
答案 0 :(得分:1)
检查您的log_errors_max_len
PHP设置。来自php.net:
log_errors_max_len
integer
- 可更改:PHP_INI_ALL
设置 最大长度
log_errors
,以字节为单位。 在error_log
有关的信息 来源已添加。默认值为1024 0允许不应用任何最大值 长度。应用此长度 记录错误,显示错误和 也是$php_errormsg
。
要测试: (via this Bogus bug)
<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors',0);
ini_set('log_errors',1);
ini_set('log_errors_max_len','0'); //change this value
ini_set('html_errors',0);
function deepTrace($a, $b, $c) {
if ($c < 50) {deepTrace($a, $b, $c+1);} else {throw new Exception('Example exception that together with the trace is over 1024 bytes.');}
}
deepTrace('example','function',0);
?>
如果将此示例代码中的log_errors_max_len
更改为0不起作用,但将其更改为大于1024的数字会产生一些影响,那么您几乎可以肯定在某个地方加载zend_extension
PHP的标准行为,例如Zend Optimizer,Zend Debugger,Xdebug等。
尝试grep -r zend_extension /etc/php.*
找到正在使用的任何扩展程序;如果找到一条未注释掉的匹配行,那就是你的罪魁祸首。