SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 229 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 :

PNG - 48.8 ko

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 ?

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

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là