Bash:
Journalisation

Comment faire :

En Bash, la journalisation peut se résumer à rediriger ou ajouter la sortie vers un fichier. Voici un exemple de base :

echo "Démarrage du script..." >> script.log
# Vos commandes de script ici
echo "Script terminé le $(date)" >> script.log

Pour quelque chose de plus avancé, vous pourriez intégrer syslog pour une journalisation à l’échelle du système :

logger "Message personnalisé de mon script"

logger envoie un message de journal au service syslog, qui le gère ensuite selon la configuration syslog du système.

Exemple de sortie capturée dans script.log :

Démarrage du script...
Script terminé le Tue Mar 23 09:26:35 PDT 2021

Exploration approfondie

Historiquement, dans les systèmes de type Unix, la journalisation a été facilitée par le service syslog, permettant à différentes applications et parties du système de consigner des messages de manière centralisée. Cela permet l’implémentation d’un mécanisme de journalisation standardisé dans tout le système.

En ce qui concerne les alternatives, certains peuvent envisager d’utiliser syslog-ng ou rsyslog pour des fonctionnalités de journalisation plus avancées, ou d’écrire les journaux dans une base de données de séries chronologiques à des fins analytiques. Pour des applications avec des niveaux de complexité plus élevés, l’utilisation d’une bibliothèque ou d’une application de journalisation dédiée comme Log4j (dans l’écosystème Java) ou Monolog (en PHP), qui peut fournir des options de journalisation structurées et configurables, pourrait avoir du sens même pour un langage de script comme Bash.

La manière dont vous implémentez la journalisation dépend grandement des exigences de votre application. Si vous avez juste besoin d’une sortie simple pour suivre la progression d’un script, ajouter des messages à un fichier est facile et pratique. Cependant, pour une journalisation plus évolutive et robuste, vous voudrez intégrer avec un système de journalisation qui prend en charge des fonctionnalités telles que la rotation des journaux, les niveaux de journalisation et la journalisation à distance.

Voir également

  • Les pages man pour les fonctions logger et syslog sont toujours utiles, essayez man logger ou man syslog.
  • Pour un regard approfondi sur la journalisation système, envisagez de lire la documentation de rsyslog et de syslog-ng.
  • Pour en savoir plus sur le contexte historique et les principes derrière la journalisation dans les systèmes de type Unix, le protocole Syslog documenté dans la RFC 5424 fournit des informations complètes.