syslog(3)

NOM
closelog, openlog, syslog, vsyslog - Envoyer des messages vers le journaliseur du système

BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)

SYNOPSIS
#include <syslog.h>

void openlog(const char *ident, int option, int type_programme);
void syslog(int priorité, const char *format, ...);
void closelog(void);

void vsyslog(int priorité, const char *format, va_list liste_arguments);

    Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

vsyslog() :
    Depuis la glibc 2.19 :
        _DEFAULT_SOURCE
    glibc 2.19 et antérieures :
        _BSD_SOURCE

DESCRIPTION

  openlog()
openlog() ouvre une connexion vers le journaliseur du système pour un programme.

La chaîne pointée par ident est ajoutée en préfixe de chaque message et son contenu est en général le nom du programme. Si la valeur de ident est NULL, le nom du programme est utilisé (POSIX.1-2008 ne précise pas le comportement si la valeur de ident est NULL).

L'argument option précise les attributs contrôlant le fonctionnement de openlog() et des appels ultérieurs à syslog(). L'argument type_programme définit une valeur par défaut à utiliser lorsque ce paramètre n'est pas fourni lors des appels ultérieurs à syslog(). Les valeurs pour option et type_programme 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 NULL par défaut.

  syslog() et vsyslog()
syslog() génère un message de journalisation qui sera distribué par syslogd(8).

L'argument priorité est formé en effectuant un OU binaire entre les valeurs de type_programme et niveau (voir description plus loin). Si aucune valeur de type_programme n'entre dans ce OU binaire, c'est la valeur par défaut définie par openlog() qui sera utilisée, ou, s'il n'y a pas eu d'appel précédent à openlog(), c'est la valeur de LOG_USER qui sera utilisée par défaut.

Les arguments restants sont un format, comme dans printf(3) et tous les arguments nécessaires pour ce format, sauf que la séquence de deux caractères %m sera remplacée par la chaîne du message d'erreur strerror(errno). L'ajout d'un saut de ligne final à la chaîne de format n'est pas nécessaire.

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 des macros de stdarg(3) pour les listes variables d'arguments.

  closelog()
closelog() ferme le descripteur de fichier utilisé pour écrire au journaliseur du système. L'utilisation de closelog() est facultative.

  Valeurs pour option
L'argument option d'openlog() est un masque de bits construit à l'aide d'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 vers le journaliseur du système.

LOG_NDELAY
    Ouvrir la connexion immédiatement (normalement, la connexion est ouverte lors de la journalisation du premier message). Cela peut s'avérer utile, par exemple, lorsqu'un appel subséquent à chroot(2) rend inaccessible le nom de chemin utilisé en interne par le programme à l'origine du message de journalisation.

LOG_NOWAIT
    Ne pas attendre la fin des processus enfants qui ont pu être créés lors de l'enregistrement du message. La bibliothèque GNU C ne créant pas de processus enfant, 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 donc pas besoin d'être indiquée.

LOG_PERROR
    Écrire sur stderr également (pas dans POSIX.1-2001, ni dans POSIX.1-2008).

LOG_PID
    Inclure le PID de l'appelant dans chaque message.

  Valeurs pour type_programme
L'argument type_programme permet d'indiquer le type du programme qui est à l'origine de la journalisation du message. Cela permet au fichier de configuration de spécifier que les messages seront traités différemment en fonction du type de programme qui les a émis.

LOG_AUTH
    Messages de sécurité/autorisation.

LOG_AUTHPRIV
    Messages de sécurité/autorisation (privés).

LOG_CRON
    Messages de démon horaire (cron et at).

LOG_DAEMON
    Messages de démons du système sans type de programme particulier.

LOG_FTP
    Messages de démon ftp.

LOG_KERN
    Messages du noyau (ils ne peuvent pas être produits par des processus d’utilisateur).

LOG_LOCAL0 jusqu’à LOG_LOCAL7
    Réservés pour des utilisations locales.

LOG_LPR
    Messages du sous-système d'impression.

LOG_MAIL
    Messages du sous-système de courrier.

LOG_NEWS
    Messages du sous-système des nouvelles USENET.

LOG_SYSLOG
    Messages internes de syslogd(8).

LOG_USER (défaut)
    Messages utilisateur génériques.

LOG_UUCP
    Messages du sous-système UUCP.

  Valeurs pour niveau
Cela 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 avertissements se présentent.

LOG_NOTICE
    Évènement normal mais important.

LOG_INFO
    Message d'information simple.

LOG_DEBUG
    Message de débogage.

La fonction setlogmask(3) permet de restreindre l'enregistrement à certains niveaux uniquement.

ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface | Attribut | Valeur
openlog(), closelog() | Sécurité des threads | MT-Safe
syslog(), vsyslog() | Sécurité des threads | MT-Safe env locale

STANDARDS

syslog()
openlog()
closelog()
    POSIX.1-2008.

vsyslog()
    Aucun.

HISTORIQUE

syslog()
    4.2BSD, SUSv2, POSIX.1-2001.

openlog()
closelog()
    4.3BSD, SUSv2, POSIX.1-2001.

vsyslog()
    4.3BSD-Reno.

POSIX.1-2001 indique uniquement les valeurs LOG_USER et LOG_LOCAL* pour l'argument type_programme. Néanmoins, à l'exception de LOG_AUTHPRIV et LOG_FTP, les autres valeurs pour type_programme sont disponibles sur la plupart des systèmes UNIX.

La valeur LOG_PERROR pour option n'est pas spécifiée par POSIX.1-2001 ou POSIX.1-2008, mais elle 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 préfixer 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 formatée par l'utilisateur, utilisez plutôt :

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

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

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Cédric Boutillier <cedric.boutillier@gmail.com>, Frédéric Hantrais <fhantrais@gmail.com> et Lucien Gentis <lucien.gentis@waika9.com>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.