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
.
Availability: Unix, not Emscripten, not WASI.
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()
, entoncesopenlog()
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, argumentos por palabras llave no eran permitidos, y la ident era obligatoria.
- 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...')