Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-01-2012 17:47:49

chatlumo
Nouveau membre
Date d'inscription: 05-01-2012
Messages: 2

Logs d'erreur en entier

Bonjour,

Je suis sur une boutique Magento qui utilise donc ZF (que je ne maîtrise pas) et j'ai une erreur lors du passage du cron. Malheureusement, l'erreur générée ne m'aide que partiellement car elle est coupée.
N'ayant pas obtenu de réponse sur un forum Magento, je me dis que cela est peut-être assez standard au ZF...

Donc, dans les rapports d'erreurs, les lignes sont tronquées. On a le début, la fin, mais une partie est remplacée par des ...

Voici l'erreur :
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (schedule_id='103285')' at line 1

et le détail c'est :

#0 /home/boutique/www/lib/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#1 /home/boutique/www/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 /home/boutique/www/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('UPDATE `cron_sc...', Array)
#3 /home/boutique/www/lib/Varien/Db/Adapter/Pdo/Mysql.php(337): Zend_Db_Adapter_Pdo_Abstract->query('UPDATE `cron_sc...', Array)
#4 /home/boutique/www/lib/Zend/Db/Adapter/Abstract.php(632): Varien_Db_Adapter_Pdo_Mysql->query('UPDATE `cron_sc...', Array)
#5 /home/boutique/www/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(402): Zend_Db_Adapter_Abstract->update('cron_schedule', Array, 'schedule_id='10...')
#6 /home/boutique/www/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Core_Model_Mysql4_Abstract->save(Object(Mage_Cron_Model_Schedule))
#7 /home/boutique/www/app/code/core/Mage/Cron/Model/Observer.php(121): Mage_Core_Model_Abstract->save()
#8 /home/boutique/www/app/code/core/Mage/Core/Model/App.php(1272): Mage_Cron_Model_Observer->dispatch(Object(Varien_Event_Observer))
#9 /home/boutique/www/app/code/core/Mage/Core/Model/App.php(1253): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Cron_Model_Observer), 'dispatch', Object(Varien_Event_Observer))
#10 /home/boutique/www/app/Mage.php(416): Mage_Core_Model_App->dispatchEvent('default', Array)
#11 /home/boutique/www/cron.php(44): Mage::dispatchEvent('default')
#12 {main}

Y'a-t'il un moyen d'avoir des lignes complètes ? J'ai vraiment besoin de connaître la requête SQL mais dans le cas présent je ne sais comment faire...

Merci !

Hors ligne

 

#2 06-01-2012 09:47:03

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Logs d'erreur en entier

Bonjour,

Dans le message d'erreur, tu n'auras pas la requête complète, le bout de requête vient directement de mysql.

Dans la pile d'erreur, il y a peut-être moyen : il faut intercepter l'exception et réafficher complètement la backtrace. Un truc du genre :

Code:

[lang=php]
try {
 // là où est lancé le front controller de magento, mais je ne connais pas magento...
} catch (Exception $e) {
    $backTrace = debug_backtrace();
    throw new Exception("backtrace=".print_r($backTrace, true));
}

PS : ça risque de ne pas être hyper lisible, mais bon, t'as toutes les infos possibles

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 06-01-2012 10:36:07

chatlumo
Nouveau membre
Date d'inscription: 05-01-2012
Messages: 2

Re: Logs d'erreur en entier

En fait je ne pensais pas au message d'erreur MySQL, mais à la pile d'erreur , lignes #2 #3 #4.
Le fait de n'avoir qu'une partie de la requête est-ce à ton avis une limitation Magento Magento ou ZF ?

Si ça vient de ZF, y'a-t-il moyen de changer la longueur maximum de la ligne, d'une façon générale, ce serait plus utile.

Merci

Hors ligne

 

#4 06-01-2012 13:18:37

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Logs d'erreur en entier

Euh, oui, le code que j'ai écrit au dessus smile. debug_backtrace() te renvoie la pile d'erreur, mais avec les données complètes (c'est un gros tableau associatif)

Donc si tu interceptes l'exception originale et que tu récupère l'ensemble de la backtrace, tu récupères les messages complets de chaque ligne.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages