Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

       syslog,   klogctl  -  Lire  et/ou  effacer  les  tampons  circulaires  de  messages  du  noyau ;  définir
       console_loglevel

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <sys/klog.h>        /* Définition des constantes SYSLOG_* */
       #include <sys/syscall.h>     /* Définition des constantes SYS_* */
       #include <unistd.h>

       int syscall(SYS_syslog, int type, char *bufp, int len);

       /* L'interface de la glibc */
       #include <sys/klog.h>

       int klogctl(int type, char *bufp, int len);

DESCRIPTION

       Note : vous  cherchez  sans  doute  la  fonction  de  la  bibliothèque C  syslog()  qui  communique  avec
       syslogd(8) ; reportez-vous à syslog(3) pour plus de détails.

       Cette  page  décrit  l'appel  système du noyau syslog() qui est utilisé pour contrôler le tampon du noyau
       printk() ; la fonction d'enveloppe de la glibc correspondant à cet appel système est 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  de  Linux  1.3.54,  elle  valait
       8192 ;  à  partir de Linux 2.1.113, elle valait 16384 ; depuis Linux 2.4.23/2.6, la valeur est une option
       de configuration du noyau (CONFIG_LOG_BUF_SHIFT, valeur par défaut dépendant de  l'architecture).  Depuis
       Linux 2.6.6, 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'espace  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 bufp. Il renvoie le nombre d'octets lus. Les octets
              lus sont supprimés du tampon 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 tampon du 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  la
              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 et 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)
              La  commande  sauvegarde  la  valeur  actuelle  de  console_loglevel  puis   affecte   la   valeur
              minimum_console_loglevel  à console_loglevel afin que les messages soient affichés sur la console.
              Avant  Linux  2.6.32,  la  commande  affectait  seulement  la  valeur  minimum_console_loglevel  à
              console_loglevel. Reportez-vous aux explications relatives à /proc/sys/kernel/printk plus bas.

              Les arguments bufp et len ne sont pas pris en compte.

       SYSLOG_ACTION_CONSOLE_ON (7)
              Si  la  commande SYSLOG_ACTION_CONSOLE_OFF a été exécutée précédemment, cette commande réaffecte à
              console_loglevel la valeur sauvegardée au moment de cette exécution.  Avant  Linux  2.6.32,  cette
              commande  réaffectait  la  valeur  default_console_loglevel  à console_loglevel. Reportez-vous aux
              explications relatives à /proc/sys/kernel/printk plus bas.

              Les arguments bufp et len ne sont pas pris en compte.

       SYSLOG_ACTION_CONSOLE_LEVEL (8)
              L'appel positionne console_loglevel à la valeur indiquée dans len, qui doit être un entier compris
              entre    1    et   8   (inclus).   Le   noyau   applique   implicitement   une   valeur   minimale
              minimum_console_loglevel pour len Consultez la section Le niveau  de  journalisation  (log  level)
              pour plus de détails. L'arguments bufp n'est 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  avant
       Linux 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 l'appelant
       avait la capacité CAP_SYS_ADMIN. Depuis Linux 2.6.37, « privilégié »  signifie  que  l’appelant  soit  la
       capacité CAP_SYS_ADMIN (maintenant obsolète pour cet usage), soit la (nouvelle) capacité CAP_SYSLOG.

   /proc/sys/kernel/printk
       /proc/sys/kernel/printk  est  un fichier accessible en écriture qui contient quatre valeurs qui affectent
       le comportement la fonction printk() du noyau lors de l'affichage ou de la  journalisation  des  messages
       d'erreur. Ces quatre valeurs sont :

       console_loglevel
              Seuls  les  messages dont le niveau de journalisation est inférieur à cette valeur seront affichés
              sur la console. La valeur par défaut du champ  est  DEFAULT_CONSOLE_LOGLEVEL (7),  mais  elle  est
              ramenée  à 4  si la ligne de commande du noyau contient le mot clef « quiet », à 10 si la ligne de
              commande contient le mot « debug », et à 15 en cas d'erreur du noyau (les valeurs 10 et  15  n'ont
              en  fait pas de sens car elles équivalent à 8). La valeur console_loglevel peut prendre une valeur
              (comprise entre 1 et 8) définie par un appel à syslog() avec un type valant 8.

       default_message_loglevel
              Cette valeur fournira le niveau de journalisation des messages de printk() pour lesquels un niveau
              de  journalisation  n'est  pas  explicitement  défini.  Jusqu'à Linux 2.6.38 inclus, la valeur par
              défaut inscrite dans le code pour ce champ était 4 (KERN_WARNING) ; à partir de  Linux 2.6.39,  la
              valeur    par    défaut    est    déterminée    par    l'option    de   configuration   du   noyau
              CONFIG_DEFAULT_MESSAGE_LOGLEVEL, qui par défaut vaut 4.

       minimum_console_loglevel
              Ce champ contient la valeur minimale qui peut être affectée à console_loglevel.

       default_console_loglevel
              La valeur par défaut de console_loglevel.

   Le niveau de journalisation (log level)
       Chaque message de printk() a son propre niveau de journalisation. Si le niveau  de  journalisation  n'est
       pas explicitement précisé comme partie du message, il vaut par défaut default_message_loglevel. Le niveau
       de journalisation a par convention les significations suivantes :

       Constante du noyau   Valeur du niveau   Signification
       KERN_EMERG                  0           Le système est inutilisable
       KERN_ALERT                  1           Des   actions    doivent    être
                                               entreprises immédiatement
       KERN_CRIT                   2           Les conditions sont critiques
       KERN_ERR                    3           Des erreurs se produisent
       KERN_WARNING                4           Des avertissements se présentent
       KERN_NOTICE                 5           Condition  normale, mais message
                                               significatif
       KERN_INFO                   6           Message d'information simple
       KERN_DEBUG                  7           Messages de débogage

       La routine du noyau printk() n'affiche un message sur la console que si son niveau de journalisation  est
       inférieur à la valeur console_loglevel.

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 est défini pour préciser l'erreur.

ERREURS

       EINVAL Mauvais paramètres (par exemple, mauvais type ; ou type égal à 2, 3 ou 4, 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 de messages 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. (Cela ne peut être vu que
              pendant un suivi de processus).

STANDARDS

       Linux.

HISTORIQUE

       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

       dmesg(1), syslog(3), capabilities(7)

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 Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

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