SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 208 visiteurs en ce moment

Accueil > Outils pour plugins > Le Couteau Suisse > SPIP et les logs

SPIP et les logs

29 octobre 2014 – par Patrice Vanneufville

12 votes

Les fichiers logs (journaux d’événements) permettent de notifier le webmaster de certains événements du site, plus ou moins importants. L’outil « SPIP et les logs » vous aidera à les consulter et à mieux piloter la façon dont ils sont construits. Découvrez également l’outil « Profiling » qui vous aidera à optimiser vos boucles et requêtes SQL

Installation

L’outil décrit ici est une fonctionnalité du plugin « Le Couteau Suisse » que vous pouvez trouver ici : Le Couteau Suisse.

Pour avoir accès aux différents réglages décrits dans cet article, il vous faut donc avoir préalablement installé ce plugin en suivant la procédure normale d’installation des plugins SPIP.

Ensuite, veuillez activer l’outil « SPIP et les logs » en vous rendant sur la page d’administration du plugin en espace privé (Bouton Configuration, puis "Le Couteau Suisse"). Cet outil (que l’on appelle aussi « lame ») est présent dans la catégorie « Développement ».

Présentation de l’outil « SPIP et les logs »

Voici une idée visuelle de l’outil :
PNG

Comme vous pouvez le voir, une première partie « Action rapide » liste les fichiers log trouvés sur votre site. En plus petit, figure la date de dernière modification qui vous renseigne sur l’état de vétusté des informations conservées.

L’outil sélectionne automatiquement les fichiers trop vieux (plus de 28 jours), vous permettant de vous en débarrasser en un clic...

En cliquant sur chacun des liens (que l’on voit en bleu sur cet exemple) vous accéderez au fichier en question. Voici comment cette page peut se présenter :

Voici les différentes colonnes disponibles :

-  Date : date de création de l’événement enregistré
-  IP : adresse IP de l’ordinateur ou du serveur ayant généré l’événement
-  PID : numéro de processus sur le serveur. La valeur « 1 » correspond au serveur
-  Espace privé :« Oui » indique que l’événement a été inséré lors de traitements effectuées dans l’interface privé. « Non » indique que l’événement a été inséré lors d’une consultation publique du site
-  Gravité : niveau de gravité de l’événement
-  Message : Description de l’événement, simple ou complet suivant le paramétrage ci-dessus

Un bouton d’actualisation de cette page est présente en sous-titre, avec la liste éventuelle de toutes les parties du fichier consulté (en .log.1, .log.2, etc.)

La fonction spip_log()

SPIP dispose d’une fonction PHP « spip_log() » pour écrire des informations de log. Très pratique pendant les phases de débogage.

Cette fonction prend 1 ou 2 arguments. Un seul, elle écrira dans le fichier spip.log. Le second argument peut avoir 2 actions :
-  écrire dans un fichier séparé et aussi dans spip.log en donnant un nom de fichier (sans extension),
-  indiquer un niveau de gravité, tel que _LOG_INFO
-  combiner les 2 actions, en concaténant au nom de fichier (éventuellement suivi d’un point) le niveau de log.

Exemples :

  1. <?php
  2. spip_log($tableau);
  3. spip_log($tableau, 'monlog');
  4. spip_log($tableau, _LOG_ERREUR);
  5. spip_log($tableau, 'monlog.' . _LOG_AVERTISSEMENT);
  6. spip_log("Ajout de $valeur dans $tableau","monlog");
  7. ?>

Télécharger

Lorsqu’un tableau est transmis à la fonction de log, SPIP écrira le résultat d’une print_r() dans le fichier de log.
Pour chaque fichiers demandé, ici spip (par défaut) et monlog, SPIP créera ou ajoutera le contenu du premier argument, mais pas n’importe où. Si le script est dans l’interface privée, il écrira dans « prive_spip.log » ou « prive_monlog.log », sinon dans « spip.log » ou « monlog.log ».

Paramétrages

-  Rotation des fichiers
La rotation des logs permet de limiter la taille de ces fichiers. SPIP peut les scinder en plusieurs parties qu’il nommera par exemple, respectivement du plus récent au plus ancien : spip.log, spip.log.1, spip.log.2, spip.log.3, etc.
Le nombre d’événements stockés étant donc limité, les plus anciens sont supprimés dès que la taille ou le nombre des parties excède la limite prévue par la configuration.
-  Dossier où sont stockés les logs
Par défaut, le dossier sous SPIP 3 est : /tmp/log/. C’est dans ce dossier que l’outil va chercher et lister tous les logs disponibles.
-  Fichier par défaut
La fonction de mise en log de SPIP comporte un paramètre de rangement optionnel, permettant de choisir un fichier de log précis. Si ce paramètre n’est pas précisé, alors l’information sera stockée dans un fichier par défaut dont vous pouvez choisir le nom. par défaut celui-ci est : spip.log.
-  Extension
L’extension habituelle du fichier est .log. Mais vous pouvez éventuellement la modifier à votre guise, par exemple : .log.txt.
-  Pour chaque hit : nombre d’accès maximal par fichier
Ce paramètre est une sécurité en cas d’un très grand nombre de requêtes. SPIP permet d’en limiter le nombre afin de ne pas surcharger le serveur ou d’allonger le temps de chargement des pages. Bien sûr, il est possible que certains événements ne soient pas consignés si la limite est dépassée, mais après tout, il suffit de régler les problèmes et tout devrait rentrer dans l’ordre...
-  Informations supplémentaires de débogage
SPIP ajoute à la description 3 informations supplémentaires : le fichier cherchant à consigner un événement, le numéro de ligne de code où ça se produit et la fonction dans laquelle on se trouve. Exemple :
plugins/auto/cache_cool/v0.4.1/cache_cool_options.php:L16:include_once()
starting ob

-  Données écrites en format brut (non HTML)
Ceci évite toute transformation du texte en vue d’un affichage HTML. Si cette option est décochée alors certains caractères seront remplacés par leur entité HTML. Exemple : « < » remplacé par « &lt; »

Le filtre de gravité

Le filtre de gravité de SPIP permet de sélectionner le niveau d’importance maximal à prendre en compte avant la mise en logs d’une donnée. Un niveau 8 permet par exemple de stocker tous les messages émis par SPIP. Le niveau par défaut est le niveau 5.

Les différentes valeurs de ce filtre sont (du moins verbeux au plus
verbeux) :

-  0 (_LOG_HS) : Système inutilisable
-  1 (_LOG_ALERTE_ROUGE) : Une intervention immédiate est nécessaire
-  2 (_LOG_CRITIQUE) : Erreur critique pour le système
-  3 (_LOG_ERREUR) : Erreur de fonctionnement
-  4 (_LOG_AVERTISSEMENT) : Avertissement
-  5 (_LOG_INFO_IMPORTANTE) : Événement normal méritant d’être signalé
-  6 (_LOG_INFO) : Pour information seulement
-  7 (_LOG_DEBUG) : Message de mise au point

Attention, il y a donc un niveau de gravité en dessous duquel la fonction spip_log() ne fonctionne pas. Pour être sûr de faire fonctionner une mise en log, voici un exemple :
spip_log("xxxxx",'testlog8');
Notez le 8 dans le nom de fichier, indiquant un niveau de gravité supérieur à ceux de SPIP (fixé à 7 maxi). L’informations sera donc bien stockée dans testlog.log.

En cochant l’option « Désactiver totalement les logs », le Couteau Suisse créera alors une fonction vide surchargeant à la source le fonctionnement normal de SPIP et empêchant toute journalisation :

  1. function inc_log(){}

L’outil « Profiling »

PNG

Cet outil présent dans la catégorie « Développement » (dès la version 1.9.3 du Couteau Suisse) vous aide à collecter des mesures sur la qualité de certains actions. Voici à ce jour deux paramétrages disponibles :

-  Tracer les requêtes lentes
Depuis Spip 2.1.22 et 3.0.9, cette option permet d’indiquer dans les logs de MySQL (log/mysql-slow.log) l’URL correspondant aux requêtes trop « lentes ».

-  Tracer les boucles lentes
Depuis Spip 3.0.9 (et, en SPIP 2.1 avec le plugin « itérateurs »), cette option permet d’ajouter un fichier de log (tmp/log/profiler.log) traçant le nom des boucles (et des squelettes appelant) dont le calcul dépasse un seuil que vous définissez en secondes.

À noter : L’appel en URL du paramètre « var_profile=1 » affiche le détail des requêtes SQL et les temps de calcul de chacune. Les requêtes sont classées de la plus gourmande en temps d’exécution à la plus rapide.
Cette fonction est particulièrement utile pour comprendre ce qui peut rendre une page excessivement lente à s’afficher.
Elle permet de visualiser les requêtes SQL générées par chaque boucle du squelette (y compris les squelettes inclus) ainsi que les requêtes hors boucle (notées « Hors Compilation ») générées par SPIP.

Autres lames, autres options

-  L’outil « Fonctions d’autorisations » permet de « journaliser » ce qui touche aux autorisations grâce au paramètre « Tracer les autorisations dans tmp/log/spip.log »
Note : ce paramètre requiert un filtre de gravité réglé à plus de 6 (INFO).
Logs
-  Les logs spécifiques au Couteau Suisse s’activent grâce à l’outil « Comportements du Couteau Suisse ».
-  Le décalage horaire utilisé par les fonctions de date/heure se configure grâce à l’outil « Décalage horaire » (PHP 5.1 minimum).

Autres plugins et articles sur les logs

-  Plugin Simple Logs pour visualiser les logs.
-  http://contrib.spip.net/Les-Log
-  http://programmer.spip.net/spip_log

Dernière modification de cette page le 3 novembre 2014

Retour en haut de la page

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Le Squelette Zpip

    11 novembre 2009 – 363 commentaires

    Ce squelette n’est plus maintenu, il est remplacé par SPIPr-dist Zpip est un modèle de squelette réutilisable, modulaire et disposant d’une galerie de thèmes. Ce modèle de squelette rend l’installation d’un site avec son thème plus facile, et la (...)

  • Calendrier Mini 2.0

    19 mai 2012 – 243 commentaires

    Ce plugin ajoute la balise #CALENDRIER_MINI qui insère un petit widget de navigation par mois dans les dates des évènements. Fonctionnement du mini calendrier Le mini calendrier présente un mois à la fois. Les jours du mois comportant des (...)

  • Galleria (fr)

    16 novembre 2011 – 183 commentaires

    Une galerie d’image qui utilise la librairie javascript Galleria. Description Ce plugin vous permet d’ajouter des galeries d’images à vos articles. La galerie créée utilise la librairie javascript Galleria. Le plugin propose un modèle nommé (...)

  • PortePlume Equation

    10 juin 2012 – commentaires

    Version pour spip 2.1 et 3.0 du plugin Spip Equation Ce plugin rend plus simple l’intégration dans un texte de formules mathématiques et d’équations. Dans ce but il ajoute un groupe de boutons dans la barre typographique qui permet d’intégrer les (...)

  • Agenda 2.0

    3 novembre 2008 – 1101 commentaires

    Voici la version pour SPIP 2.0 du Plugin Agenda pour SPIP 1.9.2, avec une interface remaniée pour encore plus de plaisir. Pour une documentation concernant l’utilisation d’Agenda 3 pour SPIP 3, veuillez pour l’instant vous référer à SPIP 3, Agenda (...)