Provided by: manpages-nl_20051127-1_all bug

NAAM

       syslog    -    lees   en/of   wis   kernel   bericht-ring-buffer;   zet
       "console_loglevel" {console log-niveau}

OVERZICHT

       #include <unistd.h>

       #include <linux/unistd.h>

       _syscall3(int, syslog, int, soort, char *, bufw, int, len);

       int syslog(int soort, char *bufw, int len);

BESCHRIJVING

       Dit is waarschijnlijk niet de functie waar je geïnteresseerd  in  bent.
       Kijk  naar  syslog(3)  voor  de  C  bibliotheek  interface. Deze pagina
       beschrijft alleen de kale systeem aanroep interface.

       Het soort argument bepaald de daad genomen door syslog.

       Citerend van {vertaald} kernel/printk.c:
       /*
        * Commands to sys_syslog:
        *
        *      0 -- Sluit het log. Momenteel een NOP {niet operatie}.
        *      1 -- Open het log. Momenteel een NOP.
        *      2 -- Lees van het log.
        *      3 -- Lees tot de laatste 4k van de berichten in de ring buffer.
        *      4 -- Lees en wis de laatste 4k van de berichten in de ring
        *           buffer. */
        *      5 -- Wis ring buffer.
        *      6 -- Zet "printk"’s-naar-de-console uit.
        *      7 -- Zet "printk"’s-naar-de-console aan.
        *      8 -- Zet niveau voor berichten geschreven naar de console.
        */

       Alleen functie 3 is toegestaan voor niet-root processen.

       De kernel log buffer
       De kernel heeft een roterende buffer met lengte LOG_BUF_LEN {log buffer
       lengte}  (4096,  sinds  1.3.54:  8192,  sinds  2.1.113:  16384)  waarin
       berichten die gegeven zijn als argument aan de kernel functie  printk()
       bewaard worden (ongeacht hun logniveau).

       De aanroep syslog (2,buf,len) wacht totdat deze kernel log buffer niet-
       leeg is, en leest dan hoogstens len bytes naar de buffer buf. Het geeft
       het  aantal  gelezen  bytes terug. Bytes gelezen van het log verdwijnen
       uit de log buffer: de informatie kunnen maar  eenmaal  gelezen  worden.
       Dit  is  de  functie  die  wordt  uitgevoerd door de kernel wanneer een
       gebruiker programma /proc/kmsg leest.

       De aanroep syslog (3,buf,len) zal de  laatste  len  bytes  van  de  log
       buffer   lezen   (niet-destructief),  maar  zal  niet  meer  lezen  dan
       geschreven was naar de  buffer  sinds  de  laatste  ’wis  ring  buffer’
       opdracht  (die  de  buffer  helemaal  niet wist).  Het geeft het aantal
       gelezen bytes terug.

       De aanroep syslog (4,buf,len) doet precies hetzelfde, maar voert ook de
       ’wis ring buffer’ opdracht uit.

       De  aanroep  syslog  (5,dummy,idummy) voert alleen de ’wis ring buffer’
       opdracht uit.

       Het log-niveau
       De kernel routine printk() zal  alleen  een  bericht  afdrukken  op  de
       console  als  het  een  log-niveau heeft dat minder is dan de variabele
       console_loglevel   {console   log    niveau}    (geïnitialiseerd    als
       DEFAULT_CONSOLE_LOGLEVEL   (7),  maar  gezet  naar  10  als  de  kernel
       opdrachtregel het woord ’debug’ bevat, en naar 15 in het geval van  een
       kernel  fout  -  de 10 en 15 zijn gewoon dwaas, en gelijk aan 8).  Deze
       variabele wordt gezet (naar een waarde in  het  interval  1-8  door  de
       aanroep     syslog     (8,dummy,value).      De     aanroepen    syslog
       (soort,dummy,idummy) met soort {soort} gelijk aan  6 of 7,  zetten  het
       respectievelijk  naar  1  (alleen  kernel-panieken) of 7 (alles behalve
       debug-berichten).

       Elke tekstregel in een bericht heeft zijn eigen log-niveau. Dit  niveau
       is  DEFAULT_MESSAGE_LOGLEVEL - 1 (6) tenzij de regel start met <d> waar
       d een getal is in het interval 1-7, in welk geval het niveau d  is.  De
       gebruikelijke   betekenis   van   het   log-niveau   wordt  bepaald  in
       <linux/kernel.h> als volgt:

       #define KERN_EMERG    "<0>"  /* {noodgeval} systeem is onbruikbaar     */
       #define KERN_ALERT    "<1>"  /* {let op} actie moet onmiddellijk genomen
       *                             * worden  */
       #define KERN_CRIT     "<2>"  /* {kritiek} kritieke toestand            */
       #define KERN_ERR      "<3>"  /* {fout} fouttoestanden                  */
       #define KERN_WARNING  "<4>"  /* {waarschuwing} waarschuwings toestanden*/
       #define KERN_NOTICE   "<5>"  /* {merk op} normale maar belangwekkende
       *                             * toestanden */
       #define KERN_INFO     "<6>"  /* {informatie} informatie                */
       #define KERN_DEBUG    "<7>"  /* debug-niveau berichten                 */

TERUGGEEF WAARDE

       In het geval van een fout wordt -1 teruggegeven en errno  wordt  gezet.
       In  het  andere geval als soort gelijk is aan 2, 3 of 4, geeft syslog()
       het aantal gelezen bytes terug, en anders 0.

FOUTEN

       EPERM  {toestemming} Een poging  werd  gedaan  om  console_loglevel  te
              veranderen of de kernel berichten ring buffer te wissen door een
              proces zonder root {"root"} toestemmingen.

       EINVAL {ongeldig} Slechte argumenten.

       ERESTARTSYS
              {herstart systeem} Systeem aanroep  werd  onderbroken  door  een
              signaal - niets werd gelezen.

VOLDOET AAN

       Deze  systeem aanroep is Linux-eigen en zou niet gebruikt moeten worden
       in programma’s die draagbaar bedoeld zijn.

ZIE OOK

       syslog(3) {systeem log}

VERTALING

       Dit is  een  handleiding  uit  manpages-dev  1.29.   Alles  wat  tussen
       ‘{’..‘}’ staat is aanvullende vertaling, en hoort niet bij de originele
       handleiding.  Email naar <manpages-nl@nl.linux.org>.

       $Id: syslog.2,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $