SYSLOG(3)

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 (consultez feature_test_macros(7)) :

vsyslog() : _BSD_SOURCE

DESCRIPTION
closelog() ferme le descripteur utilisé pour la journalisation. L'utilisation de closelog() est facultative.

openlog() ouvre une connexion dans l'outil de journalisation système pour un programme. La chaîne pointée par ident est ajoutée en préfixe de chaque message, et donne typiquement le nom du programme. Si ident est NULL, le nom du programme est utilisé. (POSIX.1-2008 ne précise pas ce comportement si ident est NULL.) 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, ni dans POSIX.1-2008.) É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

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 et POSIX.1-2008. 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 mentionnée ni par POSIX.1-2001 ni par POSIX.1-2008, 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.70 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
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Nicolas François et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».