Gestion d'erreur




Les fonctions

La fonction suivante permet de tracer des informations dans le fichier log de Dolibarr :

dol_syslog($message, LOG_DEBUG|LOG_INFO|LOG_WARN|LOG_ERR);

La fonction suivante provoque l'affichage d'un message d'erreur :

dol_print_error($db,texte);


Les fonctions suivantes permettent d'émettre des messages d'erreurs ou d'information pour les utilisateurs.

setEventMessages("", "Message d'erreur à transmettre", 'errors');

Message bloquant qui empêche l'action

setEventMessages("", "Message d'information à transmettre", 'mesgs');

Message non bloquant pour indiquer une validation par exemple

Module Log Debug (aussi appelé Syslog)

Le module de traçage est inclus parmi les autres modules administrables de Dolibarr et vous permet de activer/modifier le niveau d'erreur que vous désirez observer.

Pour atteindre la page de configuration de ce module, aller sur la page Accueil->Configuration->Modules et cliquez sur l'icone en fin de ligne sur la ligne du module Syslog.

Bien sûr, ce module (Syslog) doit être activé pour que les traces fonctionnent.

La notion de facility de syslog est une notion de configuration pré-définie pour loguer les messages. C'est une fonctionnalité système pour dire à l'opérateur système d'où vient une erreur (ici Dolibarr) et indiquer sa priorité. Vous trouverez plus d'informations dans la documentation PHP pour la fonction openlog() function qui est utilisé dans la fonction dol_syslog(): http://www.php.ne/openlog En général, il vous faut laisser cette valeur à LOG_USER, sauf si vous savez ce que vous faites.

L'option suivante, fichier, permet de choisir dans quel fichier vous allez sauver les logs. Le chemin indiqué doit etre relatif à la racine (/). Si vous le laisser tel quel (option par défaut DOL_DATA_ROOT/dolibarr.log), il sera créé dans le répertoire documents de Dolibarr. Bien sûr, pour cela, votre serveur web doit avoir les droits en écriture sur ce répertoire.

En général, la facility fichier fonctionnera plus souvent car elle ne dépend pas de la configuration système de votre serveur, ni d'un éventuel démon syslog requis (le seul problème qui peut arriver est que le répertoire n'ait pas la permission d'écriture pour le seveur web).

Enfin, le niveau de rapport représente le nombre de types de messages que vous désirez voir. LOG_DEBUG(7) est l'option la plus verbeuse, affichant tout message qui passe par la fonction dol_syslog(). LOG_EMERG(0) est son contraire, ne traçant que les messages qui sont des erreurs graves.

Plus d'information sur la page Module Syslog (développeur).

Autres logs systèmes rares

Notez, qu'indépendamment du module syslog, vous pouvez aussi trouvez des erreurs techniques PHP/Apache dans les logs d'apache (quelquesoit l'état/configuration du module syslog). Mais cela n'arrive qu'en cas de probleme technique d'installation ou d'environnement. Une application Dolibarr qui fonctionne n'affichera jamais rien dans ces fichiers. Sur un système Linux standard, de telle traces sont visibles dans les fichiers /var/log/apache[2]/[dolibarr]-error.log. Vous pouvez les voir en live depuis un terminal avec la commande:

tail -f /var/log/apache2/dolibarr-error.log