File: syslog.2

package info (click to toggle)
manpages-es 1.55-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,472 kB
  • ctags: 6
  • sloc: sh: 1,349; makefile: 63
file content (196 lines) | stat: -rw-r--r-- 7,227 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
.\" Copyright (C) 1995 Andries Brouwer (aeb@cwi.nl)
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\" 
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\" 
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" Written 11 June 1995 by Andries Brouwer <aeb@cwi.nl>
.\"
.\" Translated into Spanish Fri Feb 6 1998 by Gerardo Aburruzaga
.\" García <gerardo.aburruzaga@uca.es>
.\" Translation revised Wed Dec 30 1998 by Juan Piernas <piernas@ditec.um.es>
.\" Revisado por Miguel Pérez Ibars <mpi79470@alu.um.es> el 1-diciembre-2004
.\"
.TH SYSLOG 2  "25 noviembre 2001" "Linux 1.2.9" "Manual del Programador de Linux"
.SH NOMBRE
syslog, klogctl \- lee o limpia el búfer del anillo de mensajes del núcleo;
establece el nivel de registro de la consola
.SH SINOPSIS
.nf
/* La interfaz glibc */
.br
.B "#include <sys/klog.h>"
.sp
.BI "int klogctl(int " type ", char *" bufp ", int " len );
.sp
/* La llamada al sistema desnuda */
.br
.B #include <unistd.h>
.br
.B #include <linux/unistd.h>
.sp
.B _syscall3(int, syslog, int, type, char *, bufp, int, len);
.sp
.BI "int syslog(int " type ", char *" bufp ", int " len );
.fi
.SH DESCRIPCIÓN
Si necesita la función de libc
.BR syslog() ,
(que se comunica con
.BR syslogd (8)),
mire en
.BR syslog (3).
La llamada al sistema de este nombre explica cómo controlar el buffer del núcleo
.I printk()
, y la versión de glibc se llama
.BR klogctl() .

El argumento \fItipo\fP determina la acción tomada por esta función.

Extraído (y traducido) de
.IR kernel/printk.c :
.nf
/*
 * Órdenes a sys_syslog:
 *
 *      0 -- Cierra el registro. Actualmente no hace nada.
 *      1 -- Abre el registro. Actualmente no hace nada.
 *      2 -- Lee del registro.
 *      3 -- Lee hasta los últimos 4kB de mensajes en el búfer del anillo
 *      4 -- Lee y limpia hasta los últimos 4kB de mensajes en el búfer del anillo
 *      5 -- Limpia el búfer del anillo
 *      6 -- Desactiva los printk's a consola
 *      7 -- Activa los printk's a consola
 *      8 -- Establece el nivel de mensajes mostrados en la consola
 *      9 -- Devuelve el número de carácters no leídos en el buffer de registro
 */
.fi

Solamente se permite la función 3 para procesos no de root.
(La función 9 fue añadida en la versión 2.4.10.)

.B El búfer de registro del núcleo
.br
El núcleo tiene un búfer cíclico de longitud LOG_BUF_LEN
(4096, desde la versión 1.3.54: 8192, desde la versión 2.1.113: 16384; en núcleos recientes
el tamaño puede ser establecido en tiempo de compilación) en
el que se guardan (sin importar su nivel de registro) los mensajes
pasados como argumento a la función del núcleo \fIprintk\fP().

La llamada
.B syslog
.RI (2, buf , lon )
espera hasta que este búfer de registro del núcleo no esté vacío, y
entonces lee como mucho \fIlon\fP bytes en el búffer
\fIbuf\fP. Devuelve el número de bytes leídos. Los bytes leídos del
registro desaparecen del búfer de registro; la información sólo puede
leerse una vez.
Esta es la función ejecutada por el núcleo cuando un programa de
usuario lee
.IR /proc/kmsg .

La llamada
.B syslog
.RI (3, buf , lon )
leerá los últimos \fIlon\fP bytes del búfer de registro (de forma no
destructiva), pero no leerá más de lo que se haya escrito en el búfer
desde la última orden 'limpiar el búfer del anillo' (que no limpia el
búfer en absoluto). Devuelve el número de bytes leídos.

La llamada
.B syslog
.RI (4, buf , lon )
hace precisamente lo mismo, pero también ejecuta la orden 'limpiar el
búfer del anillo'.

La llamada
.B syslog
.RI (5, dummy , idummy )
sólo ejecuta la orden 'limpiar el búfer del anillo'.

.B EL nivel de registro
.br
La rutina del núcleo \fIprintk\fP() solamente mostrará un mensaje en
la consola, si tiene un nivel de registro menor que el valor de la variable
.I console_loglevel
(inicialmente DEFAULT_CONSOLE_LOGLEVEL (7), pero puesto a 10 si la
línea de órdenes del núcleo contiene la palabra `debug', y a 15 en
caso de un fallo del núcleo - los 10 y 15 son una tontería, y
equivalen a 8).
Esta variable es establecida (a un valor en el rango de	1 a 8) por la
llamada 
.B syslog
.RI (8, dummy , value ).
Las llamadas
.B syslog
.RI ( tipo , dummy , idummy )
con \fItipo\fP igual a 6 ó 7, lo ponen a 1 (sólo pánicos del núcleo)
o a 7 (todos los mensajes salvo los de depuración), respectivamente.

Cada línea de texto en un mensaje tiene su propio nivel de
registro. Este nivel es
DEFAULT_MESSAGE_LOGLEVEL - 1 (6) a menos que la línea comience con <d>,
donde \fId\fP es un dígito en el rango de 1 a 7, en cuyo caso el nivel
es \fId\fP. El significado convencional del nivel de registro se
define en
.I <linux/kernel.h>
así:

.nf
#define KERN_EMERG    "<0>"  /* el sistema no es utilizable         */
#define KERN_ALERT    "<1>"  /* debe tomarse una acción inmediata   */
#define KERN_CRIT     "<2>"  /* condiciones críticas                */
#define KERN_ERR      "<3>"  /* condiciones de error                */
#define KERN_WARNING  "<4>"  /* condiciones de advertencia          */
#define KERN_NOTICE   "<5>"  /* condición normal pero significativa */
#define KERN_INFO     "<6>"  /* información                         */
#define KERN_DEBUG    "<7>"  /* mensajes del nivel de depuración    */
.fi

.SH "VALOR DEVUELTO"
En caso de error, se devuelve \-1 y se pone un valor en
\fIerrno\fP. Si no, para \fItipo\fP igual a 2, 3 ó 4, \fBsyslog\fP()
devuelve el número de bytes leídos, y de otro modo 0.
.SH "ERRORES"
.TP
.B EPERM
Se ha intentado cambiar console_loglevel o limpiar el búfer de anillo
de mensajes del núcleo, pero el proceso no tenía permisos de root.
.TP
.B EINVAL
Malos parámetros.
.TP
.B ERESTARTSYS
La llamada al sistema ha sido interrumpida por una señal; no se ha
leído nada.
(Ésto sólo puede ser observado durante una traza.)
.SH "CONFORME A"
Esta llamada al sistema es específica de Linux y no debería emplearse
en programas que se pretendan transportables.
.SH OBSERVACIONES
Desde muy temprano la gente se dio cuenta de que resulta desafortunado
que la llamada al núcleo y la rutina de biblioteca del mismo nombre sean
completamente diferentes.
En libc4 y libc5 el número de esta llamada estaba definido por
.BR SYS_klog .
En glibc 2.0 la llamada al sistema está bautizada como
.BR klogctl .

.SH "VÉASE TAMBIÉN"
.BR syslog (3)