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 fonctionslogger
etsyslog
sont toujours utiles, essayezman logger
ouman syslog
. - Pour un regard approfondi sur la journalisation système, envisagez de lire la documentation de
rsyslog
et desyslog-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.