2009-08-24 5 views
1

私のエラーログを読むと、SQLトレースなどの長いパラメータが例外トレースで切り捨てられていることがわかりました。例外トレースにパラメータの値全体を記録することはできますか?

FR_Modelの.php(204):ここでは例ですFR_Base->クエリ('POS。INSERT INTO ...'、アレイ)

私はせずに、完全なパラメータをエコーする簡単な方法が欲しいです私自身の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

関連する問題