2009-08-24 3 views
1

При чтении моих журналов ошибок я замечаю, что длинные параметры (такие как строки SQL) усекаются в трассировке Исключения. Вот пример:Возможно ли регистрировать все значения параметров в трассировке Exception?

FR_Model .php (204): FR_Base-> запрос ('INSERT INTO поз ..., Array)

Я хотел бы простой способ эха полного параметра без вынуждены сворачивать свой собственный подкласс Exception. ТИА.

+0

Вы программировали с помощью CodeIgniter MVC или другой структуры? –

+0

Нет, я использую свою собственную среду MVC. –

ответ

1

Проверьте настройки log_errors_max_len PHP. Из php.net:

log_errors_max_leninteger - изменчивой: 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.*, чтобы найти любые используемые расширения; если он найдет подходящую строку, которая не закомментирована, есть ваш преступник.

+0

Установка этого параметра на 0 не работает. Возможно, это относится только к ошибкам, а не к исключениям? –

+0

см. Выше для лучшего примера - если настройка 0 все еще не работает, вы почти наверняка используете расширение zend_extension, которое вызывает проблемы. – rymo

Смежные вопросы