syslog()

Updated: October 26, 2022

Write a message to the syslogd system log

Synopsis:

#include <syslog.h>

void syslog( int priority,
             const char * message, 
             ...)

Arguments:

priority
The priority of the message; see Message levels,” below.
message
The message that you want to write. This message is identical to a printf()-format string, except that %m is replaced by the current error message (as denoted by the global variable errno). A trailing newline is added if none is present.

The formatting characters that you use in the message determine any additional arguments.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The syslog() function writes message to the system message logger. The message is then written to the system console, log files, and logged-in users, or forwarded to other machines as appropriate. (See the syslogd command.)

The vsyslog() function is an alternate form in which the arguments have already been captured using the variable-length argument facilities of <stdarg.h>.

Message levels

The message is tagged with priority. Priorities are encoded as a facility and a level. The facility describes the part of the system generating the message:

LOG_KERN
Kernel messages.
LOG_USER
Random user-level messages.
LOG_MAIL
Mail system.
LOG_DAEMON
System daemons.
LOG_AUTH
Security/authorization messages.
LOG_SYSLOG
Messages generated internally by syslogd.
LOG_LPR
Line printer subsystem.
LOG_NEWS
Network news subsystem.
LOG_UUCP
UUCP subsystem.
LOG_CRON
Clock daemon.
LOG_AUTHPRIV
Security/authorization messages (private).
LOG_FTP
ftp daemon.
LOG_LOCAL0 through LOG_LOCAL7
Reserved for local use.

The level is selected from the following list (ordered from high to low):

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 (for example, hard device errors).
LOG_ERR
General errors.
LOG_WARNING
Warning messages.
LOG_NOTICE
Conditions that aren't error conditions, but should possibly be specially handled.
LOG_INFO
Informational messages.
LOG_DEBUG
Messages that contain information normally of use only when debugging a program.

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");

Classification:

POSIX 1003.1

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler No
Thread Yes