syslog(2) System Calls Manual syslog(2) NAVN syslog, klogctl - laes og/eller ryd kernebeskedens ring-buffer; angiv console_loglevel BIBLIOTEK C-standardbibliotek (libc, -lc) SYNOPSIS #include /* Definition af SYS_*-konstanter */ #include int syscall(SYS_syslog, int type, char *bufp, int size); /* Glibc-graensefladen */ #include int klogctl(int type, char *bufp, int size); BESKRIVELSE Bemaerk: Du er sandsynligvis pa udkig efter C-biblioteksfunktionen syslog(), der kommunikerer med syslogd(8); se syslog(3) for detaljer. Denne side beskriver systemkaldet syslog() for kernen, der bruges til at kontrollere kernens printk()-buffer; glibc-omslagsfunktionen for systemkaldet kaldes klogctl(). Kernens log-buffer Kernen har en cyklisk buffer med storrelsen LOG_BUF_LEN hvori beskeder anfort som argumenter til kernefunktionen printk() er lagret (uanset deres logniveau). I tidligere kerner havde LOG_BUF_LEN vaerdien 4096; fra Linux 1.3.54 var det 8192; fra Linux 2.1.113 var det 16384; siden Linux 2.4.23/2.6 er vaerdien en kernekonfigurationsindstilling (CONFIG_LOG_BUF_SHIFT, standardvaerdien er afhaengig af arkitekturen). Siden Linux 2.6.6 kan storrelsen foresporges med kommandotypen 10 (se nedenfor). Kommandoer Argumentet type bestemmer handlingen udfort af denne funktion. Listen nedenfor angiver vaerdierne for type. De symbolske navne er defineret i kernekilden, men eksporteres ikke til brugerrum; du vil enten skulle bruge tallene, eller definere navnene selv. SYSLOG_ACTION_CLOSE (0) Luk loggen. I ojeblikket en NOP. SYSLOG_ACTION_OPEN (1) Abn loggen. I ojeblikket en NOP. SYSLOG_ACTION_READ (2) Laes fra loggen. Kaldet venter indtil kernelogbufferen ikke er tom, og laeser sa mindst len byte ind i bufferen peget pa af bufp. Kaldet returnerer antallet af byte laest. Byte laest fra loggen forsvinder fra logbufferen: informationen kan kun laeses en gang. Dette er funktionen afviklet af kernen nar et brugerprogram laeser /proc/kmsg. SYSLOG_ACTION_READ_ALL (3) Laes alle beskeder tilbage i ringbufferen, placer dem i bufferen peget mod af bufp. Kaldet laeser de sidste len byte fra logbufferen (ikkedestruktivt), men vil ikke laese mere end var skrevet ind i bufferen siden den sidste >>clear ring buffer<<-kommanod (se kommando 5 nedenfor)). Kaldet returnerer antallet af byte laest. SYSLOG_ACTION_READ_CLEAR (4) Laes og ryd alle beskeder tilbage i ringbufferen. Kaldet gor praecis det samme som for en type af 3, men afvikler ogsa >>clear ring buffer<<-kommandoen. SYSLOG_ACTION_CLEAR (5) Kaldet afvikler kun >>clear ring buffer<<-kommanoden. Argumenterne bufp og size ignoreres. Denne kommando rydder reelt ikke ringbufferen. I stedet for angives en kernebookkeeping-variabel, der bestemmer resultaterne returneret af kommandoerne 3 (SYSLOG_ACTION_READ_ALL) og 4 (SYSLOG_ACTION_READ_CLEAR). Denne kommando har ingen effekt pa kommandoerne 2 (SYSLOG_ACTION_READ) og 9 (SYSLOG_ACTION_SIZE_UNREAD). SYSLOG_ACTION_CONSOLE_OFF (6) Kommandoen gemmer den nuvaerende vaerdi af console_loglevel og angiver sa console_loglevel til minimum_console_loglevel, sa at ingen beskeder udskrives til konsollen. For Linux 2.6.32, angiver kommandoen bare console_loglevel til minimum_console_loglevel. Se diskussionen for /proc/sys/kernel/printk, nedenfor. Argumenterne bufp og size ignoreres. SYSLOG_ACTION_CONSOLE_ON (7) Hvis en tidligere SYSLOG_ACTION_CONSOLE_OFF-kommando er blevet udfort, sa gendanner denne kommando console_loglevel til vaerdien, der blev gemt af den kommando. For Linux 2.6.32 angav denne kommando bare console_loglevel til default_console_loglevel. Se diskussionen for /proc/sys/kernel/printk, nedenfor. Argumenterne bufp og size ignoreres. SYSLOG_ACTION_CONSOLE_LEVEL (8) Kaldet angiver console_loglevel til vaerdien angivet i size, der skal vaere et heltal mellem 1 og 8 (inklusive). Kernen tvinger stille en minimumsvaerdi pa minimum_console_loglevel for size. Se log level-afsnittet for detaljer. Argumnetet bufp ignoreres. SYSLOG_ACTION_SIZE_UNREAD (9) (siden Linux 2.4.10) Kaldet returnerer antallet af byte tilgaengelig i ojeblikket til at blive laest fra kernelogbufferen via kommando 2 (SYSLOG_ACTION_READ). Argumenterne bufp og size ignoreres. SYSLOG_ACTION_SIZE_BUFFER (10) (siden Linux 2.6.6) Denne kommando returnerer den samlede storrelse for kernelogbufferen. Argumenterne bufp og size ignoreres. Alle kommandoer undtagen 3 og 10 kraever privilegium. I Linuxkerner for Linux 2.6.37 er kommandotyperne 3 og 10 tilladt for uprivilegerede processer; siden Linux 2.6.37 har disse kommandoer kun adgang til uprivilegerede processer hvis /proc/sys/kernel/dmesg_restrict har vaerdien 0. For Linux 2.6.37 betod >>privilegeret<< at kalderen har funktionaliteten CAP_SYS_ADMIN. Siden Linux 2.6.37 betyder >>privilegeret<< at kalderen har enten funktionaliteten CAP_SYS_ADMIN (nu foraeldet til dette formal) eller den (nye) funktionalitet CAP_SYSLOG. /proc/sys/kernel/printk /proc/sys/kernel/printk er en skrivbar fil indeholdende fire heltalsvaerdier der influerer kernens printk()-opforsel nar fejlbeskeder udskrives eller logges. De fire vaerdier er: console_loglevel Kun beskeder med et logniveau lavere end denne vaerdi vil blive udskrevet til konsollen. Standardvaerdien for dette felt er DEFAULT_CONSOLE_LOGLEVEL (7), men er angivet til 4 hvis kernekommandolinjen indeholder ordet >>quiet<<, 10 hvi kernekommandolinjen indeholder ordet >>debug<< og til 15 i tilfaelde af en kernefejl (10 og 15 er bare dumme, og svarer til 8). Vaerdien console_loglevel kan angives (til en vaerdi i intervallet 1-8) af et syslog()-kald med en type pa 8. default_message_loglevel Denne vaerdi vil blive brugt som logniveau for printk()-beskeder, der ikke har et eksplicit niveau. Op til og inklusive Linux 2.6.38 var den kodede standardvaerdi for dette felt 4 (KERN_WARNING); siden Linux 2.6.39 er standardvaerdien defineret af kernekonfigurationstilvalget CONFIG_DEFAULT_MESSAGE_LOGLEVEL, hvis standard er 4. minimum_console_loglevel Vaerdien i dette felt er den mindste vaerdi som console_loglevel kan have. default_console_loglevel Dette er standardvaerdien for console_loglevel. Logniveauet Hver printk()-besked har sit eget logniveau. Hvis logniveauet ikke er eksplict angivet som en del af beskeden, sa er standarden default_message_loglevel. Den konventionelle betydning af logniveauet er som folger: Kernekonstant Niveauvaerdi Betydning KERN_EMERG 0 Systemet kan ikke bruges KERN_ALERT 1 Handling skal udfores ojeblikkeligt KERN_CRIT 2 Kritiske betingelser KERN_ERR 3 Fejlbetingelser KERN_WARNING 4 Advarselsbetingelser KERN_NOTICE 5 Normal men signifikant betingelse KERN_INFO 6 Informativ KERN_DEBUG 7 Fejlsognings-niveaubeskeder Kernens printk()-rutine vil kun udskrive en besked pa konsollen hvis denne har et logniveau mindre end vaerdien af console_loglevel. RETURVAERDI For type svarende til 2, 3 eller 4 returnerer et succesfuld kald til syslog() antallet af laeste byte. For type 9, returnerer syslog() antallet af byte tilgaengelig i ojeblikket for laesning af kernens logbuffer. For type 10 returnerer syslog() den samlede storrelse for kernens logbuffer. For andre vaerdier af type returneres 0 ved succes. I tilfaelde af fejl returneres -1 og errno angives for at indikere fejlen. FEJL EINVAL Ugyldige argumenter (f.eks. ugyldig type; eller for type 2, 3 eller 4, er buf NULL eller size er mindre end nul; eller for type 8, er level uden for intervallet 1 til 8). ENOSYS Dette syslog()-systemkald er ikke tilgaengelig, da kernen blev kompileret med kernekonfigurationstilvalget CONFIG_PRINTK deaktiveret. EPERM Et forsog blev gjort pa at aendre console_loglevel eller rydde kernens beskedringbuffer af en proces uden tilstraekkelig privilegium (mere praecist: uden funktionaliteten CAP_SYS_ADMIN eller CAP_SYSLOG). ERESTARTSYS Systemkald blev afbrudt af et signal; intet blev laest. (Dette kan kun ses under en sporing). STANDARDER Linux. HISTORIK Fra begyndelsen bemaerkede for at det var uheldigt at et systemkald og en biblioteksrutine med det samme navn er helt forskellige ting. SE OGSA dmesg(1), syslog(3), capabilities(7) OVERSAETTELSE Oversaettere af denne manual til dansk Joe Hansen Denne oversaettelse er gratis dokumentation; laes GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR. Hvis du stoder pa fejl i oversaettelsen af denne vejledning, skal du sende en besked til . Linux man-pages 6.18 8. februar 2026 syslog(2)