Linux

CentOS 5.3

vsyslog(3)


SYSLOG

NOM

syslog, vsyslog, openlog, closelog − Envoyer un message de journalisation.

SYNOPSIS

#include <syslog.h>

void openlog (const char * ident, int option, int facility);

void syslog (int priority, char * format, ...);

void closelog (void );

#include <stdarg.h>

void vsyslog (int priority, char * format, va_list ap);

DESCRIPTION

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 est 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.

PARAMÃTRES

Cette section détaille les paramètres utilisés pour les valeurs de option, facility, et priority.

Option

L’argument option de 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

Message du noyau.

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

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 1003.1-2001. POSIX 1003.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 1003.1-2001, mais est disponible dans la plupart des versions d’Unix.

HISTORIQUE

Une fonction syslog() est appparue dans BSD 4.2. BSD 4.3 documente openlog(), syslog(), closelog(), et setlogmask(). 4.3BSD-Reno documente aussi vsyslog(). Bien sûr les premières fonctions v* utilisaient le mécanisme <varargs.h>, qui n’est pas compatible avec <stdarg.h>.

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

syslog (priority, "%s", chaîne);

à la place.

VOIR AUSSI

logger(1), setlogmask(3), syslog.conf(5), syslogd(8)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 10 novembre 1996 et révisée le 14 août 2006.

L’équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 syslog ». N’hésitez pas à signaler à l’auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


vsyslog(3)