Les logs Prestashop

Consulter les logs de sa boutique Prestashop, vérifier si tout fonctionne, voilà un point qui peut-être très préoccupant… mais en regardant de plus près ce n’est pas ce que Prestashop fait de mieux. Allez je vais vous dire pourquoi…


L’importance des logs
Prestashop est une plateforme conséquente, les risques d’erreurs ou de bugs peuvent survenir à tout moment… surtout si vous modifiez beaucoup le coeur de la solution… le risque augmente. Du coup vous pensez que votre boutique fonctionne bien… mais vos clients tombent peut-être sur des pages blanches… erreurs fatales et quittent la boutique sans vous signaler l’erreur… du coup… vous êtes le dindon de la farce.

Les logs via le back-office
Il est important de regarder dans votre back-office Prestashop sous le menu Outils -> Logs, pour vérifier l’état des erreurs. Si vous en avez il est toujours intéressant de pouvoir définir l’origine de celles-ci, certaines sont pas forcément grave… mais si vous avez des erreurs critiques dans certains processus, ça peut valoir la peine d’intervenir… bon après il faut aussi la compétence technique pour savoir quoi modifier (c’est encore un autre challenge).



Oui mais c’est la pointe de l’iceberg…

L’autre jour j’effectuais des tests pour Autodingo… et j’ai eu des erreurs fatales (bug dans mon code), donc Prestashop générait un message critique à l’écran… et dans le back-office zéro log… rien. Ce qui veut dire que je pense que le 95% des erreurs (même fatales),  ne seront pas conservées elles feront juste de bloquer l’utilisateur et ça c’est moyen… voir même très pourri.

J’ai tenté d’optimiser la gestion des logs… mais impossible
Les exceptions sont levées via la classe « Tools » par la méthode « displayError »… j’ai donc voulu l’optimiser pour conserver les erreurs fatales, de manières à pouvoir toutes les localiser. Mais ce n’est pas possible, car dans le code du noyau… ça n’a pas été pensé correctement.

Par exemple si le modèle plante sur la validation des données… (champ ou valeur trop grande) on trouve le code suivant :

if ($die) die (Tools::displayError().' ('.Tools::safeOutput(get_class($this)).' -> '.Tools::safeOutput($field).' Length '.Tools::safeOutput($size).')');

Ils ne passent pas les paramètres de l’erreur à la fonction… du coup c’est très mal exploité, il aurait juste suffit de faire comme ci-dessous et ça suffirait pour mieux pouvoir exploiter les logs.

if ($die) die (Tools::displayError('('.Tools::safeOutput(get_class($this)).' -> '.Tools::safeOutput($field).' Length '.Tools::safeOutput($size).')'));

Modifier toute l’application
Le soucis c’est que cette manière de faire a été utilisée dans toutes l’application… du coup il faudrait modifier tous les appels à Tools::displayError() pour faire quelque chose de correct. C’est vraiment dommage, car le fait d’avoir pensé de cette manière, ne permet pas de faire un suivi complet des logs… ça pourrait être très utile de savoir quand le code à planté et dans quel processus… actuellement impossible de le savoir (sauf pour les erreurs basiques qu’ils ont décidé de loguer).

Bilan
Non Prestashop n’est pas merdique 😉 ! Mais je peine à comprendre que la gestion des logs sur un système e-commerce aussi puissant… soit aussi naïve… Dans les mécanismes de la gestion des erreurs… il me semblerait logique que toute erreur fatale soit conservée quelque part non ? Surtout si c’est fatal ! Bon y’a bien aussi un répertoire log à la racine du shop… mais a toujours été vide… Mais en conclusion je pense que c’est une stratégie… pas de logs d’erreurs… pas besoin de corriger 😀 ! Ahahah… non mais bon j’avais envie de vous faire partager ce ressenti…

Notez mon billet, Google va adorer :
1 étoiles - J'aime pas !2 étoiles - Bof !3 étoiles - Bien !4 étoiles - Très bien !5 étoiles - Génial ! (1 votes, moyenne : 4,00 sur 5)
Loading...

2 commentaires sur “Les logs Prestashop”

  1. Bonjour

    J’ai aussi un gros ecommerce sous Prestashop, et j’avoue que le logging à la Magento me manque énormément.

    Avez vous trouver une solution depuis le temps pour une gestion améliorées des logs sous prestashop ? Je suis en train de chercher de mon côté mais les résultats sont minces.

    Merci
    Jérémy

    1. Bonjour,

      De base à présent Prestashop logue beaucoup plus d’actions (sur les interventions faites en back-office)… avec aussi une série de logs stocké en interne (Warning/Error). Par contre, difficile de faire la comparaison pour moi avec Magento, car j’ai jamais approché leur système de log.

      A bientôt !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *