SYSLOG(2)          Manuel du programmeur Linux          SYSLOG(2)


NOM
       syslog  -  Lire  et/ou  effacer les buffers circulaires de
       messages du noyau.


SYNOPSIS
       #include <unistd.h>

       #include <linux/unistd.h>

       _syscall3(int, syslog, int, type, char *, bufp, int, len);

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

DESCRIPTION
       Cette fonction  n'est  probablement  pas  celle  qui  vous
       intéresse, regardez plutot syslog(3) pour l'interface avec
       la bibliothèque C. Cette page ne documente que l'interface
       directe de l'appel système avec le noyau.

       L'argument type détermine l'action effectuée par syslog.

       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 jusqu'a 4Ko des derniers messages du buffer circulaire.
        *   4 -- Lire et effacer les 4Ko derniers messages du buffer circulaire.
        *   5 -- Vider le buffer circulaire
        *   6 -- Désactiver printk sur la console
        *   7 -- Activer printk sur la console
        *   8 -- Indiquer le niveau des messages à afficher sur la console.
        */

       Seule  la  fonction 3 est autorisée pour les processus non
       Super-User.

       Le buffer de journalisation du noyau.
       Le noyau dispose d'un  buffer  circulaire  d'une  longueur
       LOG_BUF_LEN  (4096  à l'origine, 8192 depuis le 1.3.54, et
       16384 depuis la version 2.1.113) dans laquelle  il  stocke
       les  messages  reçus  par la fonction printk().  Ce buffer
       est le journal du système.

       L'appel syslog (2,buf,len) attend que ce journal soit  non
       vide,  puis  lit  au  plus  len octets qu'il place dans le
       buffer 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.



Linux                      9 Avril 1999                         1





SYSLOG(2)          Manuel du programmeur Linux          SYSLOG(2)


       L'appel syslog (3,buf,len) lit les  len octets  depuis  le
       journal  (de manière non destructive).  Il renvoie le nom­
       bre d'octets lus.

       L'appel syslog (4,buf,len) effectue  la  même  chose  puis
       vide le buffer.

       L'appel syslog (5,dummy,idummy) vide uniquement le buffer.

       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  DEFAULT_CONSOLE_LOGLEVEL (7), mais augmenté
       à 10 si la ligne de commande  du  noyau  contient  le  mot
       `debug',  et  à  15  si une faute du noyau se produit - en
       réalite 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,idummy) avec type égal à 6 ou 7
       la positionne à 1 (seulement les messages  kernel  panics)
       ou  7  (tout  sauf les messages de débugging), respective­
       ment.

       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 con­
       ventionnelle 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
       En  cas  d'erreur -1 est renvoyé et errno contient le code
       d'erreur.  En cas de réussite syslog() renvoie  le  nombre
       d'octets lus pour type valant 2, 3 ou 4, et 0 sinon.

ERREURS
       EPERM  Une   tentative   de  changer  console_loglevel  ou
              d'effacer le buffer circulaire du noyau par un pro­
              cessus sans les privilèges Super-User.

       EINVAL Mauvais paramètres





Linux                      9 Avril 1999                         2





SYSLOG(2)          Manuel du programmeur Linux          SYSLOG(2)


       ERESTARTSYS
              L'appel  système  a  été interrompu par un signal -
              rien n'a été lu.

CONFORMITÉ
       Cet appel système est spécifique Linux et ne doit pas être
       employé dans des programmes destinés à être portables.

VOIR AUSSI
       syslog(3)



TRADUCTION
       Christophe Blaess, 1997.










































Linux                      9 Avril 1999                         3