Pourquoi utiliser les logs Drupal ?
Les logs sont utiles et permettent d’offrir un service irréprochable aux internautes… Pour peu qu’on les utilise régulièrement et qu’on sache les analyser et les interpréter correctement.
Comprendre l’importance des journaux pour le débogage et le développement
Un journal (ou “log”) est un fichier qui contient toutes les activités du système, telles que les erreurs, les avertissements ou les requêtes en database. Ces activités sont enregistrées par ce qu’on appelle un “logger” lequel utilise le protocole Syslog pour envoyer ces événements à un serveur de logs centralisé.
Les journaux peuvent être utilisés pour le débogage, le suivi des performances et de la sécurité. Seuls les administrateurs (“root”) peuvent consulter un log.
Les différents types de logs dans Drupal
Il existe plusieurs types de logs dans Drupal.
- Le premier est le journal d’audit, qui enregistre toutes les actions effectuées par les utilisateurs, telles que les connexions, la création ou la modification du contenu.
- Le deuxième type de logs est le journal d’erreur qui enregistre (comme son nom l’indique) toutes les erreurs et les avertissements rencontrés lors de l’exécution du code, telles que des erreurs de syntaxe, les exceptions ou les erreurs de database. Il permet donc de détecter et de résoudre les problèmes de fonctionnement du site.
- Le troisième type de logs est le journal de débogage qui enregistre des informations détaillées sur l’exécution du code, telles que les requêtes en database, les variables PHP ou les temps de réponse des différentes parties de l’application. Il est utilisé pour faciliter le développement et le débogage.
Chaque type est identifiable par une clé ou chaîne de caractères. Par exemple, la clé “PDOException” peut apparaître en cas d’erreur dans une database.
Comment bien configurer des logs Drupal ?
Pour utiliser efficacement les logs Drupal, il est important de comprendre comment les configurer, voici les étapes à suivre.
Comment activer les journaux sur un site Drupal ?
Pour activer les journaux sur un site Drupal, vous devez d’abord accéder à la page de configuration des logs de votre site. Cette page se trouve dans le menu “Configuration”, sous l’onglet Rapports.
À partir de là, vous pouvez activer les logs en cochant la case appropriée, puis en sélectionnant les modes de journalisation que vous souhaitez activer.
Comment configurer les niveaux de journalisation ?
Par défaut, il existe huit modes de journalisation dans Drupal qui sont, dans l’ordre de gravité croissante : “Debug”, “Info”, “Notice”, “Warning”, “Error”, “Critical”, “Alert” et “Emergency”.
En modifiant un mode, vous pouvez contrôler le niveau de détail des messages de journalisation enregistrés par exemple, en ajoutant des éléments de contexte (ou “context”) comme l’ID d’un utilisateur, son adresse IP, son email ou encore une url.
Pour cela, accédez aux paramètres de journalisation dans l’interface d’administration de votre site en cliquant sur “Configuration” dans le menu principal, puis sélectionnez “Journalisation” dans la section “Développement”. Sur cette page, vous pouvez activer ou désactiver les différents channels.
Par exemple, si vous définissez le niveau de journalisation pour le channel “journal d’erreur” sur “Error”, seuls les messages d’erreur seront enregistrés dans ce channel. Si vous définissez le niveau de journalisation sur “Debug”, tous les messages, y compris les messages de débogage, seront enregistrés dans le channel.
Il est important de noter que plus le niveau de journalisation est élevé, plus le nombre de messages enregistrés sera important, ce qui peut avoir un impact sur les performances du site.
En général, il est conseillé de commencer par un niveau de journalisation moyen, qui enregistre les informations les plus importantes tout en évitant de surcharger les journaux. Par la suite, il sera toujours possible d’ajuster le niveau de journalisation en fonction des besoins de débogage et de surveillance du site.
Modifier la rotation et la taille des journaux
La modification de la rotation et de la taille des journaux permet de contrôler la quantité de données stockées dans les logs. Par défaut, les logs Drupal sont limités à une certaine taille et sont automatiquement tournés (c’est-à-dire que les logs les plus anciens sont supprimés pour faire de la place pour les nouveaux logs).
Vous pouvez modifier ce paramétrage pour répondre aux besoins spécifiques de votre site. La rotation et la taille des journaux sont également configurables dans la page de configuration des logs Drupal.
Comment bien analyser les journaux Drupal ?
L’interprétation des informations des journaux Drupal peut sembler intimidante au début et on peut rapidement se sentir débordé. Voici quelques éléments pour vous aider.
Comment accéder aux journaux ?
Pour accéder aux journaux dans Drupal, vous devez vous connecter en tant qu’administrateur et accéder à la page “Rapports”. Cette page affiche plusieurs onglets, dont l’onglet “Journal des messages”, qui contient toutes les informations de journalisation.
Vous pouvez également accéder aux journaux via la ligne de commande “tail” ou en utilisant des outils tels que le module Drush.
Comment interpréter les informations des journaux ?
Les messages de journalisation sont souvent constitués de trois parties : le niveau de gravité, le message en lui-même et les métadonnées supplémentaires.
Par exemple :
[2022-05-09T15:22:32+00:00] emergency: This site is experiencing technical difficulties. Please check the site’s logs for more information.
Ici, le niveau d’urgence est “emergency”, ce qui signifie que le site a subi une panne majeure et qu’il est actuellement inutilisable. Le message d’erreur donne également des instructions sur la façon de résoudre le problème en vérifiant les logs pour obtenir plus d’informations.
Autre exemple :
[2022-04-01 10:30:00] drupal.DEBUG: User 123 updated node 456 {“type”:”debug”,”request_id”:”abc123″,”ip”:”127.0.0.1″}
Ici, le niveau de journalisation est “debug” soit un problème mineur. Le log indique qu’un utilisateur (ID 123) a mis à jour un nœud (ID 456). Le reste des informations dans les crochets indiquent la date, l’heure, l’IP de l’utilisateur et un identifiant de requête.
Des modules et des api pour vous aider dans l’analyse
L’installation de certaines modules peut aider à la configuration des logs ou à leur analyse :
Devel : ce module permet de visualiser les informations de débogage dans un environnement de développement. Il fournit également des outils pour le profiling et la génération de contenu de test.
Log Messages permet de personnaliser les messages de journalisation dans Drupal, y compris les niveaux de journalisation et les informations incluses dans les messages.
Watchdog fournit un outil pour la visualisation des journaux directement depuis l’interface Drupal. Il permet également de configurer les niveaux de journalisation et les filtres de journalisation.
Splunk permet de connecter Drupal à la plateforme Splunk, qui fournit des outils d’analyse des journaux avancés, tels que l’analyse en temps réel et la création de tableaux de bord personnalisés.
Kibana est une api d’analyse et de visualisation de données open source qui peut elle aussi s’avérer utile. Elle est souvent utilisée en conjonction avec Elasticsearch et Logstash.
Comment ajouter un commentaire à un log
À noter, une fois le bug remonté par le log traité, il est possible d’ajouter un commentaire en utilisant la fonction LoggerInterface::log().
Voici un exemple de code pour ajouter un commentaire à un log :
\Drupal::logger(‘my_module’)->warning(‘Something went wrong’, [], [‘comment’ => ‘This error occurred because of X’]);
Faites appel à un expert pour vous accompagner dans votre stratégie. Contactez-nous !