Provided by: manpages-es_1.55-3_all bug

NOMBRE

       closelog, openlog, syslog - envían mensajes al registrador del sistema

SINOPSIS

       #include <syslog.h>

       void openlog(const char *ident, int option, int facility);
       void syslog(int priority, const char *format, ...);
       void closelog(void);

       #include <stdarg.h>

       void vsyslog(int priority, const char *format, va_list ap);

DESCRIPCIÓN

       closelog()  cierra el descriptor que se esté usando para escribir en el
       registrador del sistema. El empleo de closelog() es opcional.

       openlog() abre, para un programa, una conexión con el  registrador  del
       sistema.  La  cadena de caracteres a la que apunte ident se adjunta con
       cada mensaje, y su valor es normalmente el  nombre  del  programa.   El
       argumento  option  especifica  banderas  que  controlan la operación de
       openlog() y las llamadas posteriores a syslog().  El argumento facility
       establece  un  valor  por  defecto  que  se utiliza si no se especifica
       ninguno en llamadas posteriores a syslog().  Los valores  de  option  y
       facility  se  dan  abajo.  El uso de openlog() es opcional; syslog() la
       llamaría automáticamente si fuera necesario, en cuyo caso ident tomaría
       el valor NULL.

       syslog()  genera  un  mensaje  en el registro, que será distribuido por
       syslogd(8).  El argumento priority se construye con la operación lógica
       OR  de  facility  y  de  level  ,  (explicados  abajo).  Los  restantes
       argumentos son un formato, format, como en  printf(3),  y  cualesquiera
       argumentos  requeridos  por  format,  salvo  que  la  secuencia  de dos
       caracteres %m será reemplazada por la cadena con el  mensaje  de  error
       strerror(errno).   Un carácter final de nueva línea será añadido cuando
       sea necesario.

       La función vsyslog() hace la misma tarea que syslog() con la diferencia
       de  que  acepta un conjunto de argumentos que han sido obtenidos usando
       las macros de stdarg(3) para listas de argumentos variables.

PARÁMETROS

       Esta sección enumera los parámetros empleados para poner los valores de
       option, facility, y priority.

   option
       El  argumento option de openlog() es el resultado de la combinación con
       el operador de bits O inclusivo de cualquiera de estos valoes:

       LOG_CONS
              Escribe directamente en la consola del sistema si hay  un  error
              mientras se está enviando algo al registrador del sistema.

       LOG_NDELAY
              Abre  la  conexión  inmediatamente  (normalmente, la conexión se
              abre cuando se registra el primer mensaje).

       LOG_NOWAIT
              No espera a los procesos hijo  que  pueden  haber  sido  creados
              mientras  se  registraba el mensaje.  (La biblioteca C de GNU no
              crea un proceso hijo, así que esta opción  no  tiene  efecto  en
              Linux.)

       LOG_ODELAY
              La  opuesta de LOG_NDELAY; la apertura de la conexión se retrasa
              hasta que se invoca a syslog().  (Esta es la opción por defecto,
              y no necesita ser especificada.)

       LOG_PERROR
              (No presente en SUSv3.) Imprime también en stderr.

       LOG_PID
              Incluye el PID con cada mensaje.

   facility
       El  argumento  facility se emplea para especificar qué tipo de programa
       está registrando  el  mensaje.  Esto  permite  que  en  el  fichero  de
       configuración  se  especifique  que mensajes de diferentes programas se
       manejen de forma distinta.

       LOG_AUTH
              mensajes de seguridad o autorización (DESAPROBADO; emplee en  su
              lugar LOG_AUTHPRIV)

       LOG_AUTHPRIV
              mensajes de seguridad o autorización (privado)

       LOG_CRON
              el demonio del reloj (cron y at)

       LOG_DAEMON
              demonios del sistema con valor de ‘facility’ separado

       LOG_FTP
              demonio de ftp

       LOG_KERN
              mensajes del núcleo

       LOG_LOCAL0 a LOG_LOCAL7
              reservados para uso local

       LOG_LPR
              subsistema de impresora de línea (de impresión)

       LOG_MAIL
              subsistema de correo

       LOG_NEWS
              subsistema de tablón de anuncios USENET News

       LOG_SYSLOG
              mensajes generados internamente por syslogd

       LOG_USER  (predeterminado)
              mensajes genéricos del nivel de usuario

       LOG_UUCP
              subsistema de UUCP

   level
       Esto determina la importancia del mensaje. Los niveles son, en orden de
       importancia decreciente:

       LOG_EMERG
              el sistema está inutilizable

       LOG_ALERT
              debe tomarse una acción correctora inmediatamente

       LOG_CRIT
              condiciones críticas

       LOG_ERR
              condiciones de error

       LOG_WARNING
              condiciones de advertencia

       LOG_NOTICE
              condición normal, pero significativa

       LOG_INFO
              mensaje informativo

       LOG_DEBUG
              mensaje del nivel de depuración

       La función setlogmask(3) puede ser empleada para restringir el registro
       solamente en niveles determinados.

CONFORME A

       Las  funciones  openlog(),  closelog(),  y syslog() (pero no vsyslog())
       están especificadas en SUSv2 y POSIX  1003.1-2001.   POSIX  1003.1-2001
       especifica  solamente  los valores LOG_USER y LOG_LOCAL* para facility.
       Sin embargo, salvo la excepción de LOG_AUTHPRIV y  LOG_FTP,  los  otros
       valores  de facility aparecen en la mayoría de sistemas Unix.  El valor
       LOG_PERROR para option no está especificado por POSIX 1003.1-2001, pero
       está disponible en la mayoría de versiones de Unix.

HISTORIA

       La  función  syslog  apareció en BSD 4.2.  BSD 4.3 documenta openlog(),
       syslog(), closelog(), y setlogmask().   4.3BSD-Reno  documenta  también
       vsyslog().   Por  supuesto, funciones v* anteriores usaban el mecanismo
       <varargs.h> , que no es compatible con <stdarg.h>.

OBSERVACIONES

       El  parámetro  ident  en  la  llamada  a  openlog()  es   probablemente
       almacenado  tal  cual.  De esta manera, si la cadena a la que apunta es
       modificada, syslog() puede comenzar añadiendo la cadena  modificada,  y
       si  la  cadena  a  la  que  apunta  deja de existir, los resultados son
       indefinidos.  La mayor  portabilidad  se  consigue  usando  una  cadena
       constante.

       Nunca pase una cadena con datos de usuario como formato, use
              syslog("%s", string);
       en su lugar.

VÉASE TAMBIÉN

       logger(1), setlogmask(3), syslog.conf(5), syslogd(8)