closelog,
SYSLOG(G)           Linux Programmer's Manual           SYSLOG(G)



NAME
       closelog,  openlog,  syslog  - send messages to the system
       logger

SYNOPSIS
       #include <syslog.h>

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

       #include <stdarg.h>

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

DESCRIPTION
       closelog() closes the descriptor being used  to  write  to
       the system logger.  The use of closelog() is optional.

       openlog()  opens  a  connection to the system logger for a
       program.  The string pointed to by ident is  prepended  to
       every  message,  and is typically set to the program name.
       The option argument  specifies  flags  which  control  the
       operation  of  openlog() and subsequent calls to syslog().
       The facility argument establishes a default to be used  if
       none is specified in subsequent calls to syslog().  Values
       for option and facility are given below.  The use of open-
       log() is optional; it will automatically be called by sys-
       log() if necessary, in which case ident  will  default  to
       NULL.

       syslog()  generates  a  log  message,  which  will be dis-
       tributed by syslogd(d).  The priority argument  is  formed
       by  ORing  the  facility  and  the level values (explained
       below).  The remaining  arguments  are  a  format,  as  in
       printf(f) and any arguments required by the format, except
       that the two character sequence %m will be replaced by the
       error  message string strerror(r).  A trailing newline
       is added when needed.

       The function vsyslog() performs the same task as  syslog()
       with the difference that it takes a set of arguments which
       have been obtained using the stdarg(g)  variable  argument
       list macros.

PARAMETERS
       This  section  lists the parameters used to set the values
       of option, facility, and priority.

   option
       The option argument to openlog() is an OR of any of these:

       LOG_CONS
              Write  directly  to  system  console if there is an
              error while sending to system logger.

       LOG_NDELAY
              Open the connection immediately (normally, the con-
              nection   is  opened  when  the  first  message  is
              logged).

       LOG_NOWAIT
              Don't wait for child processes that may  have  been
              created  while  logging  the  message.   (The GNU C
              library does not create a child  process,  so  this
              option has no effect on Linux.)

       LOG_ODELAY
              The  converse of LOG_NDELAY; opening of the connec-
              tion is delayed until syslog() is called.  (This is
              the default, and need not be specified.)

       LOG_PERROR
              (Not in SUSv3.) Print to stderr as well.

       LOG_PID
              Include PID with each message.

   facility
       The facility argument is used to specify what type of pro-
       gram is logging the message.  This lets the  configuration
       file  specify that messages from different facilities will
       be handled differently.

       LOG_AUTH
              security/authorization  messages  (DEPRECATED   Use
              LOG_AUTHPRIV instead)

       LOG_AUTHPRIV
              security/authorization messages (private)

       LOG_CRON
              clock daemon (cron and at)

       LOG_DAEMON
              system daemons without separate facility value

       LOG_FTP
              ftp daemon

       LOG_KERN
              kernel messages

       LOG_LOCAL0 through LOG_LOCAL7
              reserved for local use

       LOG_LPR
              line printer subsystem

       LOG_MAIL
              mail subsystem

       LOG_NEWS
              USENET news subsystem

       LOG_SYSLOG
              messages generated internally by syslogd

       LOG_USER (default)
              generic user-level messages

       LOG_UUCP
              UUCP subsystem


   level
       This determines the importance of the message.  The levels
       are, in order of decreasing importance:

       LOG_EMERG
              system is unusable

       LOG_ALERT
              action must be taken immediately

       LOG_CRIT
              critical conditions

       LOG_ERR
              error conditions

       LOG_WARNING
              warning conditions

       LOG_NOTICE
              normal, but significant, condition

       LOG_INFO
              informational message

       LOG_DEBUG
              debug-level message

       The function setlogmask(k) can be used to restrict logging
       to specified levels only.

CONFORMING TO
       The functions openlog(), closelog(), and syslog() (but not
       vsyslog()) are specified in SUSv2 and  POSIX  1003.1-2001.
       POSIX   1003.1-2001   specifies   only  the  LOG_USER  and
       LOG_LOCAL* values for facility.  However, with the  excep-
       tion  of LOG_AUTHPRIV and LOG_FTP, the other facility val-
       ues appear on most Unix systems.  The LOG_PERROR value for
       option  is  not  specified  by  POSIX  1003.1-2001, but is
       available in most versions of Unix.

HISTORY
       A syslog function call appeared in BSD 4.2.  BSD 4.3 docu-
       ments  openlog(),  syslog(), closelog(), and setlogmask().
       4.3BSD-Reno also documents vsyslog().  Of course early  v*
       functions  used  the  <varargs.h>  mechanism, which is not
       compatible with <stdarg.h>.

NOTES
       The parameter ident in the call of openlog()  is  probably
       stored as-is. Thus, if the string it points to is changed,
       syslog() may start prepending the changed string,  and  if
       the  string  it points to ceases to exist, the results are
       undefined.  Most portable is to use a string constant.

       Never pass a string with user-supplied data as  a  format,
       use
              syslog("%s", string);
       instead.

SEE ALSO
       logger(r), setlogmask(k), syslog.conf(f), syslogd(d)



Linux                       2002-01-03                  SYSLOG(G)