SYSLOG(3) UNIX Programmer's Manual SYSLOG(3) NAME syslog , vsyslog , openlog , closelog , setlogmask - control system log SYNOPSIS #include #include void syslog(priority, message, ...); int priority; char *message; void vsyslog(priority, message, args); int priority; char *message; va_list args; void openlog(ident, logopt, facility); char *ident; int logopt; int facility; void closelog(); int setlogmask(maskpri); int maskpri; DESCRIPTION The _s_y_s_l_o_g() function writes _m_e_s_s_a_g_e to the system message logger. The message is then written to the system console, log files, logged-in users, or forwarded to other machines as appropriate. (See _s_y_s_l_o_g_d(8)). The message is identical to a _p_r_i_n_t_f(3) format string, except that %m is replaced by the current error message as denoted by the global variable _e_r_r_n_o. See _s_t_r_e_r_r_o_r(3)). A trailing newline is added if none is present. The _v_s_y_s_l_o_g() function is an alternate form in which the arguments have already been captured using the variable- length argument facilities of _v_a_r_a_r_g_s(3). The message is tagged with _p_r_i_o_r_i_t_y. Priorities are encoded as a _f_a_c_i_l_i_t_y and a _l_e_v_e_l. The facility describes the part of the system generating the message. The level is selected from the following _o_r_d_e_r_e_d (high to low) list: LOG_EMERG A panic condition. This is normally broad- cast to all users. LOG_ALERT A condition that should be corrected immedi- ately, such as a corrupted system database. Printed 11/26/99 April 1, 1995 1 SYSLOG(3) UNIX Programmer's Manual SYSLOG(3) LOG_CRIT Critical conditions, e.g., hard device errors. LOG_ERR Errors. LOG_WARNING Warning messages. LOG_NOTICE Conditions that are not error conditions, but should possibly be handled specially. LOG_INFO Informational messages. LOG_DEBUG Messages that contain information normally of use only when debugging a program. The _o_p_e_n_l_o_g() function provides for more specialized pro- cessing of the messages sent by _s_y_s_l_o_g() and _v_s_y_s_l_o_g(). The parameter _i_d_e_n_t is a string that will be prepended to every message. The _l_o_g_o_p_t argument is a bit field specifying log- ging options, which is formed by OR'ing one or more of the following values: LOG_CONS If _s_y_s_l_o_g cannot pass the message to _s_y_s_l_o_g_d it will attempt to write the message to the console (/dev/console). LOG_NDELAY Open the connection to _s_y_s_l_o_g_d immediately. Normally the open is delayed until the first message is logged. Useful for programs that need to manage the order in which file descriptors are allocated. LOG_PERROR Write the message to standard error output as well to the system log. LOG_PID Log the process id with each message: useful for identifying instantiations of daemons. The _f_a_c_i_l_i_t_y parameter encodes a default facility to be assigned to all messages that do not have an explicit facil- ity encoded: LOG_AUTH The authorization system: _l_o_g_i_n(1), _s_u(1), _g_e_t_t_y(8), etc. LOG_AUTHPRIV The same as LOG_AUTH , but logged to a file readable only by selected individuals. LOG_CRON The clock daemon. LOG_DAEMON System daemons, such as _r_o_u_t_e_d(8), that are not provided for explicitly by other Printed 11/26/99 April 1, 1995 2 SYSLOG(3) UNIX Programmer's Manual SYSLOG(3) facilities. LOG_KERN Messages generated by the kernel. These can- not be generated by any user processes. LOG_LPR The line printer spooling system: _l_p_r(1), _l_p_c(8), _l_p_d(8), etc. LOG_MAIL The mail system. LOG_NEWS The network news system. LOG_SYSLOG Messages generated internally by _s_y_s_l_o_g_d(8). LOG_USER Messages generated by random user processes. This is the default facility identifier if none is specified. LOG_UUCP The uucp system. LOG_LOCAL0 Reserved for local use. Similarly for LOG_LOCAL1 through LOG_LOCAL7. The _c_l_o_s_e_l_o_g function can be used to close the log file. The _s_e_t_l_o_g_m_a_s_k function sets the log priority mask to _m_a_s_k_p_r_i and returns the previous mask. Calls to _s_y_s_l_o_g with a priority not set in _m_a_s_k_p_r_i are rejected. The mask for an individual priority _p_r_i is calculated by the macro _L_O_G__M_A_S_K(pri). The mask for all priorities up to and including _t_o_p_p_r_i is given by the macro _L_O_G__U_P_T_O(toppri). The default allows all priorities to be logged. RETURN VALUES The routines _c_l_o_s_e_l_o_g(), _o_p_e_n_l_o_g(), _s_y_s_l_o_g() and _v_s_y_s_l_o_g() return no value. The routine _s_e_t_l_o_g_m_a_s_k() always returns the previous log mask level. EXAMPLES syslog(LOG_ALERT, "who: internal error 23"); openlog("ftpd", LOG_PID, LOG_DAEMON); setlogmask(LOG_UPTO(LOG_ERR)); syslog(LOG_INFO, "Connection from host %d", CallingHost); syslog(LOG_INFO|LOG_LOCAL2, "foobar error: %m"); SEE ALSO _l_o_g_g_e_r(_1), _s_y_s_l_o_g_d(_8) Printed 11/26/99 April 1, 1995 3 SYSLOG(3) UNIX Programmer's Manual SYSLOG(3) BUGS Under 2.11BSD the logfile /usr/adm/messages is used if a non networking kernel has been booted. That file must be publi- cally writeable in this case. HISTORY These functions appeared in 4.2BSD. Printed 11/26/99 April 1, 1995 4