Commande Linux logger
logger est un outil en ligne de commande simple mais puissant sous Linux, utilisé pour ajouter des entrées de journal au journal système (syslog). Il permet aux utilisateurs et aux programmes de script d'écrire des messages personnalisés dans les fichiers journaux système, ce qui en fait un outil important pour l'administration système et le dépannage.
Cas d'utilisation typiques:
- Enregistrer les opérations clés pendant l'exécution du script
- Suivre l'état des tâches de maintenance du système
- Enregistrer des journaux pour des applications personnalisées
- Journalisation à distance (avec un serveur syslog)
Syntaxe de base et paramètres
La syntaxe de base de la commande logger est la suivante :
logger [选项] [消息]
Paramètres d'option courants
| Option | Description |
|---|---|
-p, --priority <优先级> |
Spécifier la priorité du journal (facility.level) |
-t, --tag <标签> |
Marquer les entrées de journal avec une étiquette spécifiée |
-i, --id |
Inclure l'ID du processus dans chaque ligne de journal |
-f, --file <文件> |
Lire le contenu du journal à partir d'un fichier spécifié |
-s, --stderr |
Afficher également les journaux sur la sortie d'erreur standard |
-n, --server <主机> |
Envoyer les journaux vers un serveur syslog distant |
-P, --port <端口> |
Spécifier le port du serveur syslog distant |
-u, --socket <套接字> |
Spécifier un socket de domaine Unix au lieu du périphérique par défaut |
-d, --udp |
Envoyer les journaux en utilisant le protocole UDP (par défaut) |
-T, --tcp |
Envoyer les journaux en utilisant le protocole TCP |
-h, --help |
Afficher les informations d'aide |
-V, --version |
Afficher les informations de version |
Priorité expliquée en détail
La priorité de journalisation se compose de deux parties : facility et niveau, formatée commefacility.level。
Types de facility
| Code de facility | Description |
|---|---|
| auth | Messages de sécurité/autorisation |
| authpriv | Messages d'autorisation privés |
| cron | Démon Cron |
| daemon | Démon système |
| kern | Messages du noyau |
| lpr | Système d'impression |
| courrier | Système de messagerie |
| news | Système de news |
| syslog | Messages internes de syslogd |
| user | Messages de niveau utilisateur (par défaut) |
| local0-7 | Utilisation locale personnalisée |
Niveaux de journalisation
| Code de niveau | Description | Valeur |
|---|---|---|
| emerg | Le système est inutilisable | 0 |
| alert | Une action doit être entreprise immédiatement | 1 |
| crit | Conditions critiques | 2 |
| err | Conditions d'erreur | 3 |
| warning | Conditions d'avertissement | 4 |
| notice | Conditions normales mais significatives | 5 |
| informations | Messages d'information | 6 |
| debug | Messages de niveau débogage | 7 |
Exemples pratiques
Exemples d'utilisation de base
-
Enregistrement simple de journal:
logger "系统备份任务开始执行"
Cela enregistrera un message dans le journal système, en utilisant la priorité user.notice par défaut.
-
Journaliser avec une étiquette:
logger -t BACKUP "数据库备份完成"
L'entrée de journal s'affichera comme suit :
BACKUP: 数据库备份完成 -
Spécifier la priorité:
logger -p local0.notice "自定义应用程序启动"
Exemples d'utilisation avancée
-
Lire le contenu du journal à partir d'un fichier:
logger -f /var/log/myapp.log
-
Enregistrer l'état d'exécution du script:
#!/bin/bash logger -t SCRIPT -p user.info "脚本开始执行" # 执行任务... if [ $? -eq 0 ]; then logger -t SCRIPT -p user.info "任务执行成功" else logger -t SCRIPT -p user.err "任务执行失败" fi -
Enregistrement des journaux à distance:
logger -n 192.168.1.100 -P 514 "发送到远程服务器的日志"
-
Sortie vers le terminal et journalisation simultanées:
logger -s "这条消息会同时出现在终端和日志中"
Consultation et gestion des journaux
Après avoir enregistré les journaux, vous pouvez utiliser les commandes suivantes pour les consulter :
-
Consulter les journaux système:
journalctl # systèmes utilisant systemd ou tail -f /var/log/syslog # systèmes traditionnels -
Filtrer les journaux par une balise spécifique:
journalctl -t BACKUP
-
Consulter les journaux par heure:
journalctl --since "2023-01-01" --until "2023-01-02"
Bonnes pratiques et précautions
-
Conventions des balises de journal:
- Utilisez des balises significatives (telles que le nom de l'application ou le nom du script)
- Gardez des balises cohérentes pour faciliter le filtrage et l'analyse ultérieurs
-
Sélection des priorités:
- Utilisez différents niveaux de manière appropriée ; évitez d'utiliser le même niveau pour tous les journaux
- Utilisez le niveau d'avertissement ou supérieur pour les opérations critiques
-
Suggestions concernant le contenu des journaux:
- Incluez suffisamment d'informations de contexte
- Évitez d'enregistrer des informations sensibles (telles que les mots de passe)
- Gardez les journaux concis mais complets
-
Considérations de performance:
- La journalisation à haute fréquence peut affecter les performances
- Envisagez d'utiliser des méthodes tamponnées ou asynchrones pour journaliser de grands volumes
-
Rotation des journaux:
- Nettoyez régulièrement les anciens journaux
- Configurez logrotate pour gérer la taille des fichiers journaux
FAQ
Q1 : Pourquoi mon journal n'apparaît-il pas dans /var/log/syslog ?
A1 : Cela peut être dû à :
- La facility que vous utilisez est configurée pour écrire dans un autre fichier
- Le niveau de journalisation est inférieur au niveau d'enregistrement minimum configuré sur le système
- Le système utilise journald au lieu du syslog traditionnel
Q2 : Comment déterminer quel système de journalisation mon système utilise ?
A2 : Exécutez la commande suivante pour vérifier :
ps aux | grep -E "syslog|journald"
Q3 : Puis-je utiliser plusieurs options en même temps ?
A3 : Oui, par exemple :
logger -t MYAPP -p local0.err -i "关键错误发生"
Q4 : Comment tester la configuration du serveur de journaux distant ?
A4 : Utilisez logger pour envoyer un message de test :
logger -n 远程服务器IP -P 端口 "测试消息"
Grâce à cet article, vous devriez avoir maîtrisé l'utilisation essentielle de la commande logger. Cet outil apparemment simple est très utile dans l'administration système pratique et le développement d'applications, vous aidant à établir un mécanisme de journalisation complet. Il est recommandé de vous entraîner davantage dans votre travail réel et d'utiliser de manière flexible les différents paramètres d'option selon vos besoins spécifiques.
Autres extensions
Référence des commandes Linux