Loading

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);

       Si vous avez besoin de la fonction syslog() de la bibliothèque  C  (qui
       communique avec syslogd(8)), voyez syslog(3). L’appel système de ce nom
       contrôle le tampon printk() du noyau, et la version glibc  est  appelée
       klogctl().

       L’argument type détermine l’action effectuée par cette fonction.

       Extrait de kernel/printk.c:
       /*
        * Commandes de sys_syslog :
        *
        *    0 -- Fermer le journal (actuellement NOP)
        *    1 -- ouvrir le journal (actuellement NOP)
        *    2 -- Lire depuis le journal
        *    3 -- Lire tous les derniers messages du tampon circulaire
        *    4 -- Lire et effacer tous les derniers messages du tampon circulaire
        *    5 -- Vider le tampon circulaire
        *    6 -- Désactiver printk sur la console
        *    7 -- Activer printk sur la console
        *    8 -- Indiquer le niveau des messages à afficher sur la console
        *    9 -- Renvoie le nombre de caractères non lus dans le tampon
        *   10 -- Renvoie la taille du tampon de journalisation
        */

       Seules  les  commandes  3  et  10  sont permises pour les processus non
       privilégiés. Le type 9 a été ajouté  dans  2.4.10 ;  le  type  10  dans
       2.6.6.

   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.  Dans  les  noyaux  récent, la taille peut être demandée avec la
       commande de type 10.

       L’appel syslog(2,buf,len) attend que ce journal soit non vide, puis lit
       au plus len octets qu’il place dans le tampon buf. Il renvoie le nombre
       d’octets  lus.  Les  octets  lus  sont  extraits   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.

       L’appel syslog(3,buf,len) lit les len dernier octets depuis 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 commande de nettoyage (commande
       « clear  ring  buffer »,  qui  ne  nettoie  pas  en fait le tampon). Il
       renvoie le nombre d’octets lus.

       L’appel syslog(4,buf,len) effectue la même chose puis  vide  le  tampon
       (avec la commande « clear ring buffer »).

       L’appel  syslog(5,dummy,dummy)  vide  uniquement  le  tampon  (avec  la
       commande « clear ring buffer »). (Dans tous les  appels  pour  lesquels
       buf  ou  len  est  remplacé  par  « dummy », la valeur du paramètre est
       ignoré par l’appel).

       L’appel syslog(6,dummy,dummy) fixe le niveau de  journalisation  de  la
       console  au  minimum, de telle sorte qu’aucun message n’est affiché sur
       la console.

       L’appel syslog(7,dummy,dummy) fixe le niveau de  journalisation  de  la
       console  à la valeur par défaut, de telle sorte que des messages soient
       affichés sur la console.

       L’appel syslog(8,dummy,level) fixe 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.

       L’appel  syslog(9,dummy,dummy)  renvoie le nombre d’octets actuellement
       disponibles en lecture dans le tampon de journalisation du noyau.

       L’appel syslog(10,dummy,dummy) renvoie la taille totale  du  tampon  de
       journalisation du noyau.

   Le niveau de journalisation (loglevel)
       La  routine du noyau printk() n’écrira un message sur la console que si
       celui-ci a 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   l’appel   syslog(8,dummy,value).    L’appel
       syslog(type,dummy,dummy)  avec  type  égal  à  6 ou 7 la positionne à 1
       (seulement les messages kernel panics) ou 7 (tout sauf les messages  de
       débogage), respectivement.

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

       EPERM  Une tentative de changer console_loglevel ou d’effacer le tampon
              circulaire  du  noyau  par  un  processus  sans  les  privilèges
              suffisants (plus précisément sans la capacité CAP_SYS_ADMIN).

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

       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.

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. Dans les libc4 et libc5 le numéro de cet appel
       système était défini par SYS_klog. Dans la glibc 2.0,  l’appel  système
       est nommé klogctl().

VOIR AUSSI

       syslog(3)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 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

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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