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

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