Trace et Log : Différence entre versions

De TheliaDoc
Aller à : navigation, rechercher
m (Généralités)
Ligne 5 : Ligne 5 :
 
A partir de Thelia 1.5.2, les développeurs de plugins (et du coeur de Thelia) disposent d'un système de trace et de log qui remplace avantageusement les echo(), print() et autres print_r(). Ce système est largement inspiré de [http://logging.apache.org/log4php/ log4php], dont il reprend les principaux concepts.
 
A partir de Thelia 1.5.2, les développeurs de plugins (et du coeur de Thelia) disposent d'un système de trace et de log qui remplace avantageusement les echo(), print() et autres print_r(). Ce système est largement inspiré de [http://logging.apache.org/log4php/ log4php], dont il reprend les principaux concepts.
  
Ce système permet d'insérer à demeure dans le code des messages de plusieurs niveaux (6), qui peuvent être activés ou désactivés depuis le back-office de Thelia.
+
Ce système permet d'insérer à demeure dans le code des messages de plusieurs niveaux (6), qui peuvent être activés ou désactivés depuis le back-office de Thelia (Configuration -> Gestion des logs)
  
 
Logs et traces peuvent être dirigées vers une ou plusieurs destinations (fichier, console du navigateur, fenêtre popup, page HTML, etc.)
 
Logs et traces peuvent être dirigées vers une ou plusieurs destinations (fichier, console du navigateur, fenêtre popup, page HTML, etc.)

Version du 7 mars 2012 à 13:22

/!\ CET ARTICLE EST EN COURS DE RÉDACTION /!\

Généralités

A partir de Thelia 1.5.2, les développeurs de plugins (et du coeur de Thelia) disposent d'un système de trace et de log qui remplace avantageusement les echo(), print() et autres print_r(). Ce système est largement inspiré de log4php, dont il reprend les principaux concepts.

Ce système permet d'insérer à demeure dans le code des messages de plusieurs niveaux (6), qui peuvent être activés ou désactivés depuis le back-office de Thelia (Configuration -> Gestion des logs)

Logs et traces peuvent être dirigées vers une ou plusieurs destinations (fichier, console du navigateur, fenêtre popup, page HTML, etc.)

La classe Tlog est le point d'entrée du système de trace. Cette classe est incluse dans le moteur Thelia, il n'est pas nécessaire en général de l'inclure dans vos fichiers. Les fonctions de base sont accessibles via des méthodes statiques. La ligne ci-dessous permet par exemple de créer une trace de niveau DEBUG :

Tlog::debug("Ceci est une trace de debug. Objet:", $obj);

Les niveaux de trace

Tlog propose six niveaux de trace :

  • TRACE: message plutôt de bas niveau (requêtes SQLs, contenus de variables, etc.)
  • DEBUG: message plutôt fonctionnels, permettant de suivre le déroulement du code
  • INFO: information
  • WARNING: avertissement, sur un dysfonctionnement mineur.
  • ERROR: erreurs non fatales
  • FATAL: erreurs fatales

La classe Tlog propose une méthode statique pour chaque niveau de trace :

  • Tlog::trace(...)
  • Tlog::debug(...)
  • Tlog::info(...)
  • Tlog::warning(...)
  • Tlog::error(...)
  • Tlog::fatal(...)

Chaque méthode permet de passer un nombre de paramètres arbitraires. Les paramètres non scalaires (objets, tableaux, etc.) sont affichés à la manière de print_r().

Tlog::debug("Arguments: ", $args, ", requête:", $_REQUEST);
Tlog::trace("Entrée boucle produit. Arguments: ", $args, ", requête:", $_REQUEST);

Dans l'exemple ci-dessus, avec la configuration de base, l'affichage obtenu sera :

122: DEBUG [boucles.php:boucleProduit()] {771} 2012-02-27 14:43:01: Entrée boucle produit.
123: TRACE [boucles.php:boucleProduit()] {772} 2012-02-27 14:43:01: Arguments:  type="PRODUIT" id="84", requête:Array
(
    [url] => 84-base-pc-dsr-hb8000-500.html
    [fond] => produit
    [id_produit] => 84
    [id_rubrique] => 47
)

Les traces sont activées par niveau, depuis le B.O. Thelia, ou avec les méthodes de configuration de la classe Tlog. L'activation d'un niveau rend visibles les traces de ce niveau et de tous les niveaux supérieurs. Par exemple, si le niveau DEBUG est activées, les traces de niveau DEBUG, INFO, WARNING, ERROR et FATAL seront visibles. Si le niveau ERROR est activé, seules les traces ERROR et FATAL seront visibles.

Les destinations

Les destinations représentent les divers moyens de consigner et/ou de visualiser les logs.

Destinations de base

Les destinations suivantes sont automatiquement installées :

  • Fichier: les logs sont consignés dans un fichier.
  • A SUIVRE

Créer vos propres destinations

Configuration générale

Les logs sont administrables depuis le Back Office de Thelia, Configuration -> Paramètres Système -> Gestion des logs

Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination