Les Logs

C’est bavard les log , encore faut il savoir les faire parler ..., ci dessous ce qu’un néophyte a pu comprendre avec l’aide de spécialistes.

Note importante  : les logs disposent d’une documentation officielle qu’il faut avoir bien lu et qui a priorité sur cet article :

Les fichiers *.log, c’est quoi ?

Un fichier log est un fichier journal au format texte qui pour chaque page vue sur votre site enregistre un certain nombre d’informations techniques générées par SPIP ou par des plugins.

Chacune de ces informations est stockée sur une ligne.

Intérêt des fichiers log et pourquoi les analyser ?

Les informations que recueillent les fichiers de log vous informent de certaines situations rencontrées par le code php, qui pourraient vous être utiles pour comprendre ce qui se passe, en cas de problème par exemple, ou pour la maintenance, ou pour vous aider à optimiser vos squelettes, ou pour vous aider à comprendre le comportement des visiteurs qui arrivent sur votre site.

Les fichiers log peuvent se révéler fastidieux en raison de leur longueur et de l’enchevêtrement peu pratique et peu esthétique de chiffres et de textes. Néanmoins, il est utile de régulièrement les analyser pour détecter et résoudre des problèmes qui seraient apparus sur le site.

Comment lire un fichier log ?

Tout simplement en ouvrant un éditeur de texte standard ou via votre console.

-  Quelques commandes pour lire les logs en console linux :
-  sudo tail -F Nom_du_fichier.log
-  fgrep 500 access-xxx.log | grep -v 200

Il existe aussi le plugin Simples Logs qui permet de lire les logs directement depuis la partie privée.

Pourquoi y a t il plusieurs fichiers de log avec le même nom ?

Vous verrez qu’il y a plusieurs fichiers de logs avec le même nom, mais une extension .1, .2 ou .3 en plus.
Exemple : spip.log, spip.log.1, spip.log.2

En effet, chaque fichier de log est limité à 100 kilo octets par défaut. Au delà de cette taille, le fichier courant est renommé avec l’extension .log.1 et un nouveau fichier vierge est créé pour recueillir les nouveaux logs.
Lorsque la limite de taille est atteinte de nouveau, l’éventuel .log.1 existant est renommé en .log.2 avant l’opération ci-dessus. De même, l’éventuel .log.2 existant est renommé en .log.3 avant l’opération ci-dessus.
Enfin, l’éventuel .log.3 existant est supprimé avant l’opération ci-dessus.

On verra plus loin que le nombre de fichier de logs gardés et leur taille maximale peuvent être paramétrés.

Où sont les logs Spip

Ils sont rangés dans divers répertoires temporaires de votre site.

Chez moi, /home/www/spipfactory/public_html/ étant la racine du dossier contenant le site :

  • /home/www/spipfactory/public_html/tmp/
    • spip.log
  • /home/www/spipfactory/public_html/tmp/log/
    • mysql.log
    • mysqlmysql.log
    • spip.log
  • Pour un Spip mutualisé : xxx étant le nom du site, /home/www/spipfactory/public_html/sites/xxx/tmp/log/
    • maj.log
    • spip.log
    • spip_error.log
    • sqlite.log

Quels sont les termes employés dans les logs ?

  • (pid xxxxx)
    numéro de processus sur le serveur. 1 Pid = 1 hit sur le serveur. Si le pid change, c’est que c’est un autre hit (qui peut être un hit ajax du même utilisateur, ou un hit d’un autre utilisateur).
  • Pub = public : un log qui se fait en affichant l’espace public
  • Pri = privé : un log qui se fait en affichant l’espace privé

Les termes ’INFO’, ’ERREUR’, ’WARNING’, mais aussi parfois ’ALERTE’, ’CRITIQUE’, ’debug’ indiquent le degré de log tels que définis là http://core.spip.org/projects/spip/repository/entry/spip/ecrire/inc_version.php#L139 et http://core.spip.org/projects/spip/repository/entry/spip/ecrire/inc/utils.php#L258

Paramétrage des logs dans le fichier mes_options.php

Le fichier de configuration ecrire/inc_version.php définit la taille maximale des fichiers de log et le nombre de log par défaut.
Ces valeurs peuvent être paramétrées dans mes_options.php.
Il est possible de désactiver les logs en mettant l’une de ces valeurs à zéro.

$GLOBALS['nombre_de_logs'] = 4; // 4 fichiers au plus
$GLOBALS['taille_des_logs'] = 100; // de 100ko au plus

Une constante _MAX_LOG (valant 100 par défaut) indique le nombre d’entrées que chaque appel d’une page peut écrire. Ainsi, après 100 appels de spip_log() par un même script, la fonction ne log plus.

La constante _LOG_FILTRE_GRAVITE définit le niveau maximal de gravité des informations à enregistrer dans les fichiers de log de SPIP.
Par défaut seuls les logs d’erreur sont enregistrés pour réduire la verbosité mais pendant la phase de développement, il peut être nécessaire d’obtenir des logs plus détaillés : dans ce cas vous redéfinirez la constante dans votre fichier config/mes_options.php

// définir le niveau maximum de verbosité des logs
define('_LOG_FILTRE_GRAVITE', _LOG_DEBUG);

Le niveau par défaut est dans ce cas de 5.

Les différentes valeurs de cette constante sont (du moins verbeux au plus verbeux)

  • _LOG_HS (= 0)
  • _LOG_ALERTE_ROUGE (= 1)
  • _LOG_CRITIQUE (= 2)
  • _LOG_ERREUR (= 3)
  • _LOG_AVERTISSEMENT (= 4)
  • _LOG_INFO_IMPORTANTE (= 5)
  • _LOG_INFO (= 6)
  • _LOG_DEBUG (= 7)

Le niveau _LOG_HS correspond à des erreurs graves : échec écriture session, échec connexion, requête non prévue pour le type de base de donnée, base absente ou droits manquants...

Le niveau _LOG_DEBUG est utilisé pour des messages intentionnellement laissés par le développeur, sans qu’il y ait problème mais pour l’aider dans sa mise au point.

5° Documentation

Voir aussi
-  la lame « SPIP et les logs » du couteau suisse.
-  le plugin Simplog : il permet de consulter les logs et de supprimer les plus anciens.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom