Provided by: manpages-fr-dev_3.57d1p1-1_all 

NOM
syslog, klogctl - Lire et/ou effacer les tampons circulaires de messages du noyau
SYNOPSIS
int syslog(int type, char *bufp, int len);
/* Pas de fonction fournie par glibc */
/* L'interface glibc */
#include <sys/klog.h>
int klogctl(int type, char *bufp, int len);
DESCRIPTION
Si vous avez besoin de la fonction syslog() de la bibliothèque C (qui communique avec syslogd(8)),
consultez syslog(3). L'appel système portant ce nom contrôle le tampon printk() du noyau, et la fonction
d'encapsulation de glibc s'appelle klogctl().
Le tampon de journalisation du noyau.
Le noyau dispose d'un tampon circulaire d'une longueur LOG_BUF_LEN dans lequel il stocke les messages
fournis en paramètre à la fonction du noyau printk() (sans tenir compte du niveau de journalisation).
Dans les premiers noyaux, LOG_BUF_LEN avait pour valeur 4096 ; à partir du noyau 1.3.54 elle valait
8192 ; à partir du noyau 2.1.113 elle valait 16384 ; depuis 2.4.23/2.6 la valeur est une option de
configuration du noyau (CONFIG_LOG_BUF_SHIFT). Dans les noyaux récents, la commande de type 10 (voir plus
bas) renvoie la taille du tampon.
Commandes
L'argument type détermine quelle action est réalisée par cette fonction. La liste ci-dessous précise les
valeurs que peut prendre type. Les noms symboliques sont définis dans les sources du noyau, mais ne sont
pas exportés dans l'environnement utilisateur ; vous devrez donc utiliser les identifiants numériques, ou
redéfinir vous même les noms.
SYSLOG_ACTION_CLOSE (0)
Ferme le journal. Actuellement, cette instruction est sans effet.
SYSLOG_ACTION_OPEN (1)
Ouvre le journal. Actuellement, cette instruction est sans effet.
SYSLOG_ACTION_READ (2)
Lecture du journal. Dès que le tampon du journal n'est plus vide, l'appel lit au plus len octets
qu'il place dans le tampon vers lequel pointe buf. Il renvoie le nombre d'octets lus. Les octets
lus sont supprimés du journal : les informations ne peuvent être lues qu'une seule fois. C'est la
fonction exécutée par le noyau quand un programme utilisateur lit /proc/kmsg.
SYSLOG_ACTION_READ_ALL (3)
Lecture de tous les messages restant dans le tampon circulaire, qui sont déplacés dans le tampon
vers lequel pointe bufp. L'appel lit les len derniers octets dans le journal (de manière non
destructive). Il ne lira pas plus que ce qui a été écrit dans le tampon depuis la dernière
exécution de la commande de nettoyage (commande « clear ring buffer », voir plus bas commande 5).
L'appel renvoie le nombre d'octets lus.
SYSLOG_ACTION_READ_CLEAR (4)
Lecture et suppression de tous les messages du tampon circulaire. L'appel effectue exactement la
même chose que la commande de type 3, mais exécute également la commande « clear ring buffer ».
SYSLOG_ACTION_CLEAR (5)
L'appel ne fait qu'exécuter la commande « clear ring buffer ». Les arguments bufp and len ne sont
pas pris en compte.
Cette fonction ne vide pas réellement le tampon circulaire. Plus exactement, elle définit une
variable de suivi d'activité du noyau qui détermine ce que renvoient les commandes 3
(SYSLOG_ACTION_READ_ALL) et 4 (SYSLOG_ACTION_READ_CLEAR). Cette commande est sans effet sur les
commandes 2 (SYSLOG_ACTION_READ) et 9 (SYSLOG_ACTION_SIZE_UNREAD).
SYSLOG_ACTION_CONSOLE_OFF (6)
Désactive l'affichage à la console (routine printk).L'appel positionne le niveau de journalisation
de la console au minimum, de telle sorte qu'aucun message ne soit affiché sur la console. Les
arguments bufp et len ne sont pas pris en compte.
SYSLOG_ACTION_CONSOLE_ON (7)
L'appel positionne le niveau de journalisation de la console à sa valeur par défaut, de telle
sorte que des messages soient affichés sur la console. Les arguments bufp et len ne sont pas pris
en compte.
SYSLOG_ACTION_CONSOLE_LEVEL (8)
L'appel positionne le niveau de journalisation de la console à level, qui doit être un entier
compris entre 1 et 8 (inclus). Consultez la section Le niveau de journalisation (loglevel) pour
plus de détails. Les arguments bufp et len ne sont pas pris en compte.
SYSLOG_ACTION_SIZE_UNREAD (9) (à partir de Linux 2.4.10)
L'appel renvoie le nombre d'octets disponibles en lecture dans le tampon de journalisation du
noyau au moment de l'appel, au moyen de la commande 2 (SYSLOG_ACTION_READ). Les arguments bufp et
len ne sont pas pris en compte.
SYSLOG_ACTION_SIZE_BUFFER (10) (à partir de Linux 2.6.6)
Cette commande renvoie la taille totale du tampon du journal du noyau. Les arguments bufp et len
ne sont pas pris en compte.
Toutes les commandes, excepté 3 et 10, nécessitent des privilèges. Dans les noyaux Linux précédant la
version 2.6.37, seules les commandes de type 3 à 10 étaient permises aux processus non privilégiés ;
depuis Linux 2.6.37, les commandes de type 3 et 10 sont permises à ces processus seulement si
/proc/sys/kernel/dmesg_restrict vaut 0. Avant Linux 2.6.37, « privilégié » signifiait que le processus
avait soit la capacité CAP_SYS_ADMIN (maintenant obsolète pour cet usage), soit la (nouvelle) capacité
CAP_SYSLOG.
Le niveau de journalisation (loglevel)
La routine du noyau printk() n'affichera sur la console que les messages ayant un niveau de
journalisation inférieur à la valeur de la variable console_loglevel. Initialement, la valeur de cette
variable est DEFAULT_CONSOLE_LOGLEVEL (7), mais elle est augmentée à 10 si la ligne de commande du noyau
contient le mot « debug », et à 15 si une faute du noyau se produit (en réalité, les valeurs 10 et 15
sont idiotes et n'apportent rien de plus que 8). Cette variable est positionnée (dans l'intervalle 1–8)
par un appel syslog() de type 8. Les appels à syslog() dont le type est égal à 6 ou à 7 positionnent
respectivement la variable à 1 (seulement en cas de panique du noyau) ou à 7 (tout message autre qu'un
message de debug).
Chaque ligne de texte dans un message a son propre niveau de journalisation. Ce niveau est
DEFAULT_MESSAGE_LOGLEVEL - 1 (6) à moins que la ligne ne commence par <d> où d est un chiffre dans
l'intervalle 1–7. La signification conventionnelle des niveaux de journalisation est définie dans
<linux/kernel.h> comme suit :
#define KERN_EMERG "<0>" /* système inutilisable */
#define KERN_ALERT "<1>" /* action à effectuer immédiatement */
#define KERN_CRIT "<2>" /* conditions critiques */
#define KERN_ERR "<3>" /* conditions d'erreurs */
#define KERN_WARNING "<4>" /* message d'avertissement */
#define KERN_NOTICE "<5>" /* normal mais significatif */
#define KERN_INFO "<6>" /* informations */
#define KERN_DEBUG "<7>" /* messages de débugging */
VALEUR RENVOYÉE
Quand type est égal à 2, 3 ou 4, un appel réussi à syslog() renvoie le nombre d'octets lus. Pour le type
9, syslog() renvoie le nombre d'octets disponibles actuellement en lecture dans le tampon de
journalisation du noyau. Pour le type 10, syslog() renvoie la taille totale du tampon de journalisation
du noyau. Pour les autres valeurs de type, 0 est renvoyé en cas de succès.
En cas d'erreur, -1 est renvoyé et errno contient le code d'erreur.
ERREURS
EINVAL Mauvais paramètres (par exemple, mauvais type ; ou type égal à 2, 3 ou 4 et buf est NULL, ou len
est inférieur à 0 ; ou pour type égal à 8, le niveau level est en dehors de l'intervalle allant de
1 à 8).
ENOSYS L'appel système syslog() n'est pas disponible car le noyau a été compilé sans que l'option
CONFIG_PRINTK de configuration du noyau n'ait été activée.
EPERM Un changement de console_loglevel ou un effacement du tampon circulaire du noyau par un processus
sans les privilèges suffisants (plus précisément sans la capacité CAP_SYS_ADMIN ou CAP_SYSLOG) a
été tenté.
ERESTARTSYS
L'appel système a été interrompu par un signal, et rien n'a été lu. (Ceci ne peut être vu que
pendant un suivi de processus).
CONFORMITÉ
Cet appel système est spécifique à Linux et ne devrait pas être employé dans des programmes destinés à
être portables.
NOTES
Depuis longtemps, des gens trouvent regrettable qu'un appel système et une routine de bibliothèque aient
le même nom bien qu'ils n'aient pas de rapport entre eux.
VOIR AUSSI
syslog(3), capabilities(7)
COLOPHON
Cette page fait partie de la publication 3.57 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). Julien Cristau et l'équipe francophone de traduction de
Debian (2006-2009).
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> ».
Linux 29 novembre 2012 SYSLOG(2)