syslog
— Rutinas de la biblioteca syslog de Unix¶
Este módulo ofrece una interfaz a las rutinas de la biblioteca syslog
de Unix. Consulte las páginas del manual de Unix para una descripción detallada de la facility (es así como se llama en la documentación a un subsistema de aplicaciones) syslog
.
Este módulo envuelve la familia de rutinas de syslog
. En el módulo logging.handlers
está disponible SysLogHandler
, una biblioteca en Python puro que puede comunicarse con un servidor syslog.
El módulo define las siguientes funciones:
-
syslog.
syslog
(message)¶ -
syslog.
syslog
(priority, message) Envía la cadena de caracteres message al registrador del sistema. Se añade un final de línea si es necesario. Cada mensaje se etiqueta con una prioridad compuesta por una facility y un nivel. El argumento opcional priority, que por defecto es
LOG_INFO
, determina la prioridad del mensaje. Si la facility no está codificada en priority usando un OR lógico (LOG_INFO | LOG_USER
), se usará el valor con el que se llama aopenlog()
.Si
openlog()
no se ha llamado antes de la llamada asyslog()
,openlog()
se llamará sin argumentos.Lanza un evento de auditoría
syslog.syslog
con los argumentospriority
,message
.
-
syslog.
openlog
([ident[, logoption[, facility]]])¶ Las opciones de registro de las llamadas a
syslog()
pueden establecerse llamando a la funciónopenlog()
.syslog()
llamará aopenlog()
sin argumentos si el registro no está abierto actualmente.El argumento por palabra clave opcional ident es una cadena de caracteres que precede a cada mensaje, y por defecto es
sys.argv[0]
retirando los componentes delanteros de la ruta. El argumento nombrado opcional logoption (por defecto es 0) es un campo de tipo bit – véanse a continuación los posibles valores que pueden combinarse. El argumento nombrado opcional facility (por defecto esLOG_USER
) establece una facility por defecto para mensajes que no tienen una facility explícitamente codificada.Lanza un evento de auditoría
syslog.openlog
con los argumentosident
,logoption
,facility
.Distinto en la versión 3.2: En versiones anteriores, los argumentos nombrados no estaban permitidos, y ident era obligatorio. El valor por defecto de ident dependía de las librerías del sistema, y a menudo era
python
en lugar del nombre del fichero del programa en Python.
-
syslog.
closelog
()¶ Reinicia los valores del módulo syslog y llama a la librería del sistema
closelog()
.Esto provoca que el módulo actúe como lo hacía cuando fue importado inicialmente. Por ejemplo, se llamará a
openlog()
en la primera llamada asyslog()
(si no se ha llamado aopenlog()
ya), e ident y otros parámetros deopenlog()
se reiniciarán a sus valores por defecto.Lanza un evento de auditoría
syslog.closelog
sin argumentos.
-
syslog.
setlogmask
(maskpri)¶ Asigna la máscara de prioridad a maskpri y retorna el valor anterior de la máscara. Las llamadas a
syslog()
con un nivel de prioridad no asignado en maskpri se ignoran. El comportamiento por defecto es registrar todas las prioridades. La funciónLOG_MASK(pri)
calcula la máscara para la prioridad individual pri. La funciónLOG_UPTO(pri)
calcula la máscara para todas las prioridades mayores o iguales que pri.Lanza un evento de auditoría
syslog.setlogmask
con argumentomaskpri
.
El módulo define las siguientes constantes:
- Niveles de prioridad (de más alto a más bajo):
LOG_EMERG
,LOG_ALERT
,LOG_CRIT
,LOG_ERR
,LOG_WARNING
,LOG_NOTICE
,LOG_INFO
,LOG_DEBUG
.- Facilities:
LOG_KERN
,LOG_USER
,LOG_MAIL
,LOG_DAEMON
,LOG_AUTH
,LOG_LPR
,LOG_NEWS
,LOG_UUCP
,LOG_CRON
,LOG_SYSLOG
,deLOG_LOCAL0
aLOG_LOCAL7
, y, si está definida en<syslog.h>
,LOG_AUTHPRIV
.- Opciones de registro:
LOG_PID
,LOG_CONS
,LOG_NDELAY
, y, si están definidas en<syslog.h>
,LOG_ODELAY
,LOG_NOWAIT
, yLOG_PERROR
.
Ejemplos¶
Ejemplo sencillo¶
Un conjunto sencillo de ejemplos:
import syslog
syslog.syslog('Processing started')
if error:
syslog.syslog(syslog.LOG_ERR, 'Processing started')
Un ejemplo de configuración de varias opciones de registro, que incluirán el identificador del proceso en los mensajes registrados, y escribirán los mensajes a la facility de destino usada para el registro de correo:
syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('E-mail processing initiated...')