syslog, openlog, closelog ou setlogmask Sous-routine
Objectif
Contrôle le journal système.
Bibliothèque
Bibliothèque C standard (libc.a)
Syntaxe
#include < syslog.h >
void openlog ( ID, LogOption, Facility) const char *ID; int LogOption, Facility;
void syslog ( Priorité, Valeur, ... ) int Priorité; const char *Value;
closelog vide ()
int setlogmask( MaskPriority ) int MaskPriority;
void bsdlog (Priorité, Valeur,...) int Priorité; const char *Value;
Descriptif
La sous-routine syslog écrit des messages dans le journal système géré par la commande syslogd .
Le message est similaire à la chaîne printf fmt , avec la différence que %m est remplacé par le message d'erreur en cours obtenu à partir de la variable globale errno . Une nouvelle ligne de fin peut être ajoutée au message si nécessaire.
Les messages sont lus par la commande syslogd et écrits dans la console système ou dans le fichier journal, ou transmis à la commande syslogd sur l'hôte approprié.
Si un traitement spécial est requis, la sous-routine openlog peut être utilisée pour initialiser le fichier journal.
Les messages sont balisés avec des codes indiquant le type de Priorité pour chacun d'eux. Une priorité est codée en tant que fonction, qui décrit la partie du système générant le message, et en tant que niveau, qui indique la gravité du message.
Si la sous-routine syslog ne peut pas transmettre le message à la commande syslogd , elle écrit le message dans le fichier /dev/console , à condition que l'option LOG_CONS soit définie.
La sous-routine closelog ferme le fichier journal.
La sous-routine setlogmask utilise le masque de bit du paramètre MaskPriority pour définir le nouveau masque de priorité de journal et renvoie le masque précédent.
Les macros LOG_MASK et LOG_UPTO du fichier sys/syslog.h sont utilisées pour créer le masque de priorité. Les appels à la sous-routine syslog avec un masque de priorité qui n'autorise pas la consignation de ce niveau de message particulier entraînent le renvoi de la sous-routine sans consignation du message.
Paramètres
| Article | Descriptif |
|---|---|
| id | Contient une chaîne associée au début de chaque message. Le paramètre Fonction code une fonction par défaut de la liste précédente à affecter aux messages qui n'ont pas de fonction explicite codée. |
| LogOption | Indique une zone de bit qui indique les options de consignation. Les valeurs de LogOption sont les suivantes:
|
| Installation | Indique les valeurs suivantes qui ont généré le message:
|
| Priority | Indique la partie du système qui génère le message et, en tant que niveau, indique la gravité du message. Le niveau de gravité est sélectionné dans la liste suivante:
|
| MaskPriority | Active la consignation pour les niveaux indiqués par les bits du masque qui sont définis et désactivés lorsque les bits ne sont pas définis. Le masque par défaut permet de consigner toutes les priorités. |
| Valeur | Indique les valeurs données dans les paramètres Valeur et suit la même syntaxe que le paramètre Format de la sous-routine printf . |
Exemples
- Pour consigner un message d'erreur concernant une éventuelle violation de sécurité, telle que la suivante, entrez:
syslog (LOG_ALERT, "who:internal error 23"); - Pour initialiser le fichier journal, définir le masque de priorité de journal et consigner un message d'erreur, entrez:
openlog ("ftpd", LOG_PID, LOG_DAEMON); setlogmask (LOG_UPTO (LOG_ERR)); syslog (LOG_INFO, ""); - Pour consigner un message d'erreur provenant du système, entrez:
syslog (LOG_INFO | LOG_LOCAL2, "foobar error: %m");