syslog - phpMan

File: libc.info,  Node: syslog; vsyslog,  Next: closelog,  Prev: openlog,  Up: Submitting Syslog Messages
18.2.2 syslog, vsyslog
----------------------
The symbols referred to in this section are declared in the file
'syslog.h'.
 -- Function: void syslog (int FACILITY_PRIORITY, const char *FORMAT,
          ...)
     Preliminary: | MT-Safe env locale | AS-Unsafe corrupt heap lock
     dlopen | AC-Unsafe corrupt lock mem fd | *Note POSIX Safety
     Concepts::.
     'syslog' submits a message to the Syslog facility.  It does this by
     writing to the Unix domain socket '/dev/log'.
     'syslog' submits the message with the facility and priority
     indicated by FACILITY_PRIORITY.  The macro 'LOG_MAKEPRI' generates
     a facility/priority from a facility and a priority, as in the
     following example:
          LOG_MAKEPRI(LOG_USER, LOG_WARNING)
     The possible values for the facility code are (macros):
     'LOG_USER'
          A miscellaneous user process
     'LOG_MAIL'
          Mail
     'LOG_DAEMON'
          A miscellaneous system daemon
     'LOG_AUTH'
          Security (authorization)
     'LOG_SYSLOG'
          Syslog
     'LOG_LPR'
          Central printer
     'LOG_NEWS'
          Network news (e.g.  Usenet)
     'LOG_UUCP'
          UUCP
     'LOG_CRON'
          Cron and At
     'LOG_AUTHPRIV'
          Private security (authorization)
     'LOG_FTP'
          Ftp server
     'LOG_LOCAL0'
          Locally defined
     'LOG_LOCAL1'
          Locally defined
     'LOG_LOCAL2'
          Locally defined
     'LOG_LOCAL3'
          Locally defined
     'LOG_LOCAL4'
          Locally defined
     'LOG_LOCAL5'
          Locally defined
     'LOG_LOCAL6'
          Locally defined
     'LOG_LOCAL7'
          Locally defined
     Results are undefined if the facility code is anything else.
     *NB:* 'syslog' recognizes one other facility code: that of the
     kernel.  But you can't specify that facility code with these
     functions.  If you try, it looks the same to 'syslog' as if you are
     requesting the default facility.  But you wouldn't want to anyway,
     because any program that uses the GNU C Library is not the kernel.
     You can use just a priority code as FACILITY_PRIORITY.  In that
     case, 'syslog' assumes the default facility established when the
     Syslog connection was opened.  *Note Syslog Example::.
     The possible values for the priority code are (macros):
     'LOG_EMERG'
          The message says the system is unusable.
     'LOG_ALERT'
          Action on the message must be taken immediately.
     'LOG_CRIT'
          The message states a critical condition.
     'LOG_ERR'
          The message describes an error.
     'LOG_WARNING'
          The message is a warning.
     'LOG_NOTICE'
          The message describes a normal but important event.
     'LOG_INFO'
          The message is purely informational.
     'LOG_DEBUG'
          The message is only for debugging purposes.
     Results are undefined if the priority code is anything else.
     If the process does not presently have a Syslog connection open
     (i.e., it did not call 'openlog'), 'syslog' implicitly opens the
     connection the same as 'openlog' would, with the following defaults
     for information that would otherwise be included in an 'openlog'
     call: The default identification string is the program name.  The
     default default facility is 'LOG_USER'.  The default for all the
     connection options in OPTIONS is as if those bits were off.
     'syslog' leaves the Syslog connection open.
     If the '/dev/log' socket is not open and connected, 'syslog' opens
     and connects it, the same as 'openlog' with the 'LOG_NDELAY' option
     would.
     'syslog' leaves '/dev/log' open and connected unless its attempt to
     send the message failed, in which case 'syslog' closes it (with the
     hope that a future implicit open will restore the Syslog connection
     to a usable state).
     Example:

          #include <syslog.h>
          syslog (LOG_MAKEPRI(LOG_LOCAL1, LOG_ERROR),
                  "Unable to make network connection to %s.  Error=%m", host);
 -- Function: void vsyslog (int FACILITY_PRIORITY, const char *FORMAT,
          va_list ARGLIST)
     Preliminary: | MT-Safe env locale | AS-Unsafe corrupt heap lock
     dlopen | AC-Unsafe corrupt lock mem fd | *Note POSIX Safety
     Concepts::.
     This is functionally identical to 'syslog', with the BSD style
     variable length argument.