Scroll to navigation

SYSLOG(3) Linux Programmer's Manual SYSLOG(3)


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


#include <syslog.h>

void openlog( char *ident, int option, int facility)

void syslog( int priority, char *format, ...)

void closelog( void )


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 added to each message, and is typically set to the program name. Values for option and facility are given in the next section. The use of openlog() is optional; It will automatically be called by syslog() if necessary, in which case ident will default to NULL.

syslog() generates a log message, which will be distributed by syslogd(8). priority is a combination of the facility and the level, values for which are given in the next section. The remaining arguments are a format, as in printf(3) and any arguments required by the format, except that the two character %m will be replaced by the error message string (strerror) corresponding to the present value of errno.


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


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

write directly to system console if there is an error while sending to system logger
open the connection immediately (normally, the connection is opened when the first message is logged)
print to stderr as well
include PID with each message


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

security/authorization messages (DEPRECATED Use LOG_AUTHPRIV instead)
security/authorization messages (private)
clock daemon (cron and at)
other system daemons
kernel messages
reserved for local use
line printer subsystem
mail subsystem
USENET news subsystem
messages generated internally by syslogd
generic user-level messages
UUCP subsystem


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

system is unusable
action must be taken immediately
critical conditions
error conditions
warning conditions
normal, but significant, condition
informational message
debug-level message


A syslog function call appeared in BSD 4.2.


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

15 Feb 1994 Linux