focal (2) syslog.2.gz

Provided by: manpages-fr-dev_3.65d1p1-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.65 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> ».