2009-08-24 9 views
1

내 오류 로그를 읽을 때 예외 문자열에서 긴 문자열 (예 : SQL 문자열)이 잘린 것을 알 수 있습니다.예외 추적에서 매개 변수의 전체 값을 기록 할 수 있습니까?

FR_Model .PHP (204) : 예를 들면 다음과 같습니다이다 FR_Base-> 쿼리 ('POS INTO INSERT ...', 배열)

내가없이 전체 매개 변수를 반향하는 쉬운 방법을 싶습니다 내 자신의 Exception 하위 클래스를 롤백해야합니다. TIA.

+0

CodeIgniter MVC 또는 다른 프레임 워크로 프로그래밍 했습니까? –

+0

아니요, 내 자신의 MVC 프레임 워크를 사용하고 있습니다. –

답변

1

log_errors_max_len PHP 설정을 확인하십시오. php.net에서 :

log_errors_max_leninteger - 변경 : 바이트 log_errors의 최대 길이를 설정 PHP_INI_ALL

. error_log 소스에 대한 정보가 추가되었습니다. 기본값은 1024 이며 0은 최대 길이 인 을 전혀 적용하지 못하게합니다. 이 길이는 에 기록되어 오류가 표시되고 오류는 $php_errormsg에도 적용됩니다. 테스트하려면

:(via this Bogus bug) 작동하지 않습니다 0이 샘플 코드에 log_errors_max_len을 변경하지만 1024보다 큰 숫자로 변경하면 어떤 효과가있는 경우

<?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); 
?> 

, Zend Optimizer, Zend Debugger, Xdebug 등과 같은 PHP의 표준 동작을 무시하는 어딘가에 zend_extension을로드하는 것이 거의 확실합니다.

사용중인 확장을 찾으려면 grep -r zend_extension /etc/php.*을 시도하십시오. 주석 처리되지 않은 일치하는 줄을 발견하면 범인이 있습니다.

+0

0으로 설정하면 작동하지 않습니다. 아마도 이것은 오류가 아닌 예외와 관련이 있을까요? –

+0

더 좋은 예를 보시려면 위의 설정을 참조하십시오. 0으로 설정해도 작동하지 않는다면 문제가되는 zend_extension이 거의 확실하게 사용됩니다. – rymo

관련 문제