NOM
closelog, openlog, syslog, vsyslog - Envoyer un message de
journalisation
SYNOPSIS
#include <syslog.h>
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);
#include <stdarg.h>
void vsyslog(int priority, const char *format, va_list ap);
Exigences de macros de test de fonctionnalités pour la glibc (voir
feature_test_macros(7)) :
vsyslog() : _BSD_SOURCE
closelog() ferme le descripteur utilisé pour la journalisation.
L’utilisation de closelog() est facultative.
openlog() ouvre une connexion de journalisation. La chaîne pointée par
ident sera ajoutée à chaque message (c’est généralement le nom du
programme). L’argument option précise les attributs contrôlant le
fonctionnement de openlog() et des appels ultérieurs à syslog().
L’argument facility est une valeur par défaut employée lorsque ce
paramètre n’est pas fourni lors des appels ultérieurs à syslog(). Les
valeurs pour option et facility sont décrites plus bas. L’utilisation
de openlog() est optionnelle. Cette fonction sera automatiquement
invoquée par syslog() si besoin. Dans ce cas, ident aura la valeur par
défaut NULL.
syslog() crée un message journalisé, qui sera distribué par syslogd(8).
L’argument priority est une combinaison par OU binaire des valeurs de
facility et de level, indiquées plus bas. Les arguments restants sont
un format, comme celui de printf(3) et tous les arguments nécessaires
pour ce format, sauf que les deux caractères %m seront automatiquement
remplacés par le libellé d’erreur strerror(errno). Un saut de ligne
final peut être ajouté si besoin est.
La fonction vsyslog() réalise la même tâche que syslog() à la
différence qu’elle prend un ensemble d’arguments obtenus à l’aide de la
macro stdarg(3) pour les listes variables d’arguments.
Les sous-sections ci-dessous détaillent les paramètres utilisés pour
les valeurs de option, facility et priority.
option
L’argument option d’openlog() est un OU binaire entre les constantes
suivantes :
LOG_CONS écrire directement sur la console système s’il y a une
erreur durant la transmission.
LOG_NDELAY ouvrir la connexion immédiatement (normalement, la
connexion est ouverte quand le premier message est
transmis).
LOG_NOWAIT Ne pas attendre la fin des processus fils qui peuvent
être créés lors de l’enregistrement du message. La
bibliothèque glibc ne crée pas de processus fils, ainsi
cette option est sans effet sous Linux.
LOG_ODELAY L’inverse de LOG_NDELAY; l’ouverture de la connexion est
repoussée jusqu’à l’invocation de syslog(). C’est le
comportement par défaut, et l’option n’a pas besoin
d’être indiquée.
LOG_PERROR (pas dans POSIX.1-2001) écrire sur stderr également.
LOG_PID inclure le PID dans chaque message.
facility
L’argument facility permet d’indiquer le type du programme qui demande
la journalisation du message. Ceci permet un traitement différent des
messages, en fonction de fichiers de configuration.
LOG_AUTH message de sécurité/autorisation (DÉCONSEILLÉ ! Utilisez
LOG_AUTHPRIV à la place)
LOG_AUTHPRIV message de sécurité/autorisation (privé).
LOG_CRON message d’un démon horaire (cron et at)
LOG_DAEMON démon du système sans classification particulière.
LOG_FTP démon ftp.
LOG_KERN messages noyau (ils ne peuvent pas être produit par des
processus utilisateurs)
LOG_LOCAL0 through LOG_LOCAL7
réservé pour des utilisations locales.
LOG_LPR message du sous-système d’impression.
LOG_MAIL message du sous-système de courrier.
LOG_NEWS message du sous-système des news USENET.
LOG_SYSLOG message interne de syslogd(8)
LOG_USER (défaut)
message utilisateur générique.
LOG_UUCP message du sous-système UUCP.
level
Ceci détermine l’importance du message. Les niveaux, dans l’ordre
d’importance décroissante, sont :
LOG_EMERG Le système est inutilisable.
LOG_ALERT Des actions doivent être entreprises immédiatement.
LOG_CRIT Les conditions sont critiques.
LOG_ERR Des erreurs se produisent.
LOG_WARNING Des avertissement se présentent.
LOG_NOTICE Condition normale, mais message significatif.
LOG_INFO Message d’information simple.
LOG_DEBUG Message de débogage.
La fonction setlogmask(3) permet de restreindre l’enregistrement à
certains niveaux uniquement.
CONFORMITÉ
Les fonctions openlog(), closelog() et syslog() (mais pas vsyslog())
sont mentionnées dans SUSv2 et POSIX.1-2001. POSIX.1-2001 indique
uniquement les valeurs LOG_USER et LOG_LOCAL* pour l’argument facility.
Néanmoins, à l’exception de LOG_AUTHPRIV et LOG_FTP, les autres valeurs
pour facility existent sur la plupart des systèmes Unix. La valeur
LOG_PERROR de l’argument option n’est pas mentionnée par POSIX.1-2001,
mais est disponible dans la plupart des versions d’Unix.
NOTES
Le paramètre ident durant l’appel openlog() est généralement stocké tel
quel. Ainsi, si la chaîne vers laquelle il pointe est modifiée,
syslog() peut afficher la chaîne modifiée, et si la chaîne cesse
d’exister, le résultat est indéfini. Le comportement le plus portable
est l’utilisation d’une chaîne constante.
Ne jamais passer directement une chaîne fournie par l’utilisateur,
utilisez plutôt :
syslog(priority, "%s", chaîne);
VOIR AUSSI
logger(1), setlogmask(3), syslog.conf(5), syslogd(8)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Nicolas François
<nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».