2009-08-24 10 views
1

Lors de la lecture de mes journaux d'erreurs, je remarque que les longs paramètres (tels que les chaînes SQL) sont tronqués dans la trace d'exception. Voici un exemple:Est-il possible de consigner la valeur entière des paramètres dans les traces d'exceptions?

FR_Model .php (204): FR_Base-> query ('INSERT INTO pos ...', Array)

Je voudrais un moyen facile de faire écho au paramètre complet sans avoir à rouler ma propre sous-classe Exception. TIA.

+0

Avez-vous programmé avec le CodeIgniter MVC ou un autre framework? –

+0

Non, j'utilise mon propre framework MVC personnalisé. –

Répondre

1

Vérifiez votre paramètre PHP log_errors_max_len. De php.net:

log_errors_max_leninteger - variable: PHP_INI_ALL

Régler la longueur maximale de log_errors en octets. Dans error_log informations sur la source est ajouté. La valeur par défaut est 1024 et 0 permet de ne pas appliquer de longueur maximale de . Cette longueur est appliquée aux erreurs consignées, aux erreurs affichées et également à $php_errormsg.

Pour tester:(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); 
?> 

Si le changement log_errors_max_len dans cet exemple de code à 0 ne fonctionne pas, mais en changeant à un nombre plus grand que 1024 a un certain effet, alors vous chargez presque certainement un zend_extension quelque part qui outrepasse le comportement standard de PHP, tel que Zend Optimizer, Zend Debugger, Xdebug, etc.

Essayez grep -r zend_extension /etc/php.* pour localiser les extensions en cours d'utilisation; Si elle trouve une ligne correspondante qui n'est pas commentée, il y a votre coupable.

+0

Le réglage à 0 n'a pas fonctionné. Peut-être que cela ne concerne que les erreurs, et pas les exceptions? –

+0

voir ci-dessus pour un meilleur exemple - si le réglage 0 ne fonctionne toujours pas, vous avez certainement une extension zend utilisée qui cause vos problèmes. – rymo

Questions connexes