On vous dit tout sur les Logs Drupal : pourquoi les utiliser, les différents types, comment bien les analyser.
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.
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.
Il existe plusieurs types de logs dans Drupal.
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.
Pour utiliser efficacement les logs Drupal, il est important de comprendre comment les configurer, voici les étapes à suivre.
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.
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.
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.
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.
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.
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.
L’installation de certaines modules peut aider à la configuration des logs ou à leur analyse :
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.
À 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.