# `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 a `openlog()`.

  Si `openlog()` no se ha llamado antes de la llamada a `syslog()`, entonces `openlog()` se llamará sin argumentos.

  Lanza un evento de auditoría `syslog.syslog` con los argumentos `priority`, `message`.

  Distinto en la versión 3.2: En versiones anteriores, `openlog()` no sería llamado automáticamente si no fuera un llamado previo de la llamada a la función `syslog()`, postergando la implementación de syslog para llamar a `openlog()`.

syslog.openlog([ident[, logoption[, facility]]])

  Las opciones de registro de las llamadas a `syslog()` pueden establecerse llamando a la función `openlog()`. `syslog()` llamará a `openlog()` 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 es `LOG_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 argumentos `ident`, `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 a `syslog()` (si no se ha llamado a `openlog()` ya), e ident y otros parámetros de `openlog()` 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ón `LOG_MASK(pri)` calcula la máscara para la prioridad individual pri. La función `LOG_UPTO(pri)` calcula la máscara para todas las prioridades mayores o iguales que pri.

  Lanza un evento de auditoría `syslog.setlogmask` con argumento `maskpri`.

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`,de `LOG_LOCAL0` a `LOG_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`, y `LOG_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...')