Amiga Unix — 68040 · 68060

Manual pages › BSD C library (3B)

syslog(3B)

control system log

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

syslog, openlog, closelog, setlogmask - control system log

SYNOPSIS

cc [ flag... ] file ... -lucb
#include <syslog.h>
openlog(ident, logopt, facility)
char *ident;
syslog(priority, message, parameters ... )
char *message;
closelog()
setlogmask(maskpri)

DESCRIPTION

syslog passes message to syslogd(1M), which logs it in an appropriate system log, writes it to the system console, forwards it to a list of users, or forwards it to the syslogd on another host over the network. The message is tagged with a priority of priority. The message looks like a printf(3S) string except that %m is replaced by the current error message (collected from errno). A trailing NEWLINE is added if needed. Priorities are encoded as a facility and a level. The facility describes the part of the system generating the message. The level is selected from an ordered list:

LOG_EMERG A panic condition. This is normally broadcast to all users.

LOG_ALERT           A   condition   that   should    be
                    corrected  immediately,  such  as a
                    corrupted system database.

LOG_CRIT Critical conditions, such as hard device errors.

LOG_ERR Errors.

LOG_WARNING Warning messages.

LOG_NOTICE Conditions that are not error conditions, but that may require special handling.

LOG_INFO Informational messages.

     LOG_DEBUG           Messages that  contain  information
                         normally of use only when debugging
                         a program.
If special processing is needed, openlog can  be  called  to
initialize  the  log  file.  The parameter ident is a string
that is prepended to every message.  logopt is a  bit  field
indicating logging options.  Current values for logopt are:

LOG_PID Log the process ID with each message. This is useful for identifying specific daemon processes (for daemons that fork).

LOG_CONS Write messages to the system console if they cannot be sent to syslogd. This option is safe to use in daemon processes that have no controlling terminal, since syslog forks before opening the console.

LOG_NDELAY Open the connection to syslogd immediately. Normally the open is delayed until the first message is logged. This is useful for programs that need to manage the order in which file descriptors are allocated.

     LOG_NOWAIT          Do not  wait  for  child  processes
                         that  have  been forked to log mes-
                         sages  onto  the   console.    This
                         option  should be used by processes
                         that enable notification  of  child
                         termination  using  SIGCHLD,  since
                         syslog may otherwise block  waiting
                         for  a  child whose exit status has
                         already been collected.
The facility parameter encodes  a  default  facility  to  be
assigned to all messages that do not have an explicit facil-
ity already encoded:

LOG_KERN Messages generated by the kernel. These cannot be generated by any user processes.

LOG_USER Messages generated by random user processes. This is the default facility identifier if none is specified.

LOG_MAIL The mail system.

LOG_DAEMON System daemons, such as ftpd(1M), routed(1M), etc.

LOG_AUTH            The      authorization      system:
                    login(1), su(1), getty(1M), etc.

LOG_LPR The line printer spooling system: lpr(1), lpc(1M), etc.

LOG_NEWS Reserved for the USENET network news system.

LOG_UUCP Reserved for the UUCP system; it does not currently use syslog.

     LOG_CRON            The cron/at  facility;  crontab(1),
                         at(1), cron(1M), etc.

     LOG_LOCAL0-7        Reserved for local use.
closelog can be used to close the log file.  setlogmask sets
the  log  priority  mask to maskpri and returns the previous
mask.  Calls to syslog with a priority not  set  in  maskpri
are  rejected.   The  mask for an individual priority pri is
calculated by the macro  LOG_MASK(pri);  the  mask  for  all
priorities  up to and including toppri is given by the macro
LOG_UPTO(toppri).  The default allows all priorities  to  be
logged.

EXAMPLE

This call logs a message at priority LOG_ALERT:
     syslog(LOG_ALERT, "who: internal error 23");
The FTP daemon, ftpd, would make this  call  to  openlog  to
indicate  that all messages it logs should have an identify-
ing string of ftpd, should be treated by  syslogd  as  other
messages  from  system  daemons  are, and should include the
process ID of the process logging the message:
     openlog("ftpd", LOG_PID, LOG_DAEMON);
Then it would make the following call to setlogmask to indi-
cate  that  messages  at  priorities  from LOG_EMERG through
LOG_ERR should be logged, but that no messages at any  other
priority should be logged:
     setlogmask(LOG_UPTO(LOG_ERR));
Then, to log a message at priority LOG_INFO, it  would  make
the following call to syslog:
     syslog(LOG_INFO,  "Connection  from  host   %d",   Cal-
     lingHost);
A locally-written utility could use the  following  call  to
syslog  to log a message at priority LOG_INFO, to be treated
by syslogd as other messages to the facility LOG_LOCAL2  are
treated:
     syslog(LOG_INFO|LOG_LOCAL2, "error: %m");

SEE ALSO

logger(1),   login(1),   lpr(1),    lpc(1M),    syslogd(1M),
printf(3S)  at(1), crontab(1), login(1) in the User's Refer-
ence Manual.
ftpd(1M),   routed(1M)   in   the   Network    User's    and
Administrator's Guide.

getty(1M),  cron(1M),  su(1),  printf(3S)  in   the   System
Administrator's Reference Manual.