Provided by:
manpages-nl_20051127-4_all
NAAM
syslog - lees en/of wis kernel bericht-ring-buffer; zet "con‐
sole_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 con‐
sole als het een log-niveau heeft dat minder is dan de variabele con‐
sole_loglevel {console log niveau} (geïnitialiseerd als DEFAULT_CON‐
SOLE_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/ker‐
nel.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 */
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.
Deze systeem aanroep is Linux-eigen en zou niet gebruikt moeten worden
in programma’s die draagbaar bedoeld zijn.
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 $