SYSLOG.CONF(5) Linux System Administration SYSLOG.CONF(5)
syslog.conf - syslogd(8) configuration file
The syslog.conf file is the main configuration file for the syslogd(8)
which logs system messages on *nix systems. This file specifies rules
for logging. For special features see the sysklogd(8) manpage.
Every rule consists of two fields, a selector field and an action
field. These two fields are separated by one or more spaces or tabs.
The selector field specifies a pattern of facilities and priorities
belonging to the specified action.
Lines starting with a hash mark (#) and empty lines are ignored.
This release of syslogd is able to understand an extended syntax. One
rule can be divided into several lines if the leading line is termi
nated with an backslash (\).
The selector field itself again consists of two parts, a facility and a
priority, separated by a period (.). Both parts are case insensi
tive and can also be specified as decimal numbers, but dont do that,
you have been warned. Both facilities and priorities are described in
syslog(3). The names mentioned below correspond to the similar
LOG_-values in /usr/include/syslog.h.
The facility is one of the following keywords: auth, authpriv, cron,
daemon, ftp, kern, lpr, mail, mark, news, security (same as auth), sys
log, user, uucp and local0 through local7. The keyword security should
not be used anymore and mark is only for internal use and therefore
should not be used in applications. Anyway, you may want to specify
and redirect these messages here. The facility specifies the subsystem
that produced the message, i.e. all mail programs log with the mail
facility (LOG_MAIL) if they log using syslog.
The priority is one of the following keywords, in ascending order:
debug, info, notice, warning, warn (same as warning), err, error (same
as err), crit, alert, emerg, panic (same as emerg). The keywords
error, warn and panic are deprecated and should not be used anymore.
The priority defines the severity of the message
The behavior of the original BSD syslogd is that all messages of the
specified priority and higher are logged according to the given action.
This syslogd(8) behaves the same, but has some extensions.
In addition to the above mentioned names the syslogd(8) understands the
following extensions: An asterisk (*) stands for all facilities or
all priorities, depending on where it is used (before or after the
period). The keyword none stands for no priority of the given facil
You can specify multiple facilities with the same priority pattern in
one statement using the comma (,) operator. You may specify as
much facilities as you want. Remember that only the facility part from
such a statement is taken, a priority part would be skipped.
Multiple selectors may be specified for a single action using the semi
colon (;) separator. Remember that each selector in the selector
field is capable to overwrite the preceding ones. Using this behavior
you can exclude some priorities from the pattern.
This syslogd(8) has a syntax extension to the original BSD source, that
makes its use more intuitively. You may precede every priority with an
equation sign (=) to specify only this single priority and not any
of the above. You may also (both is valid, too) precede the priority
with an exclamation mark (!) to ignore all that priorities, either
exact this one or this and any higher priority. If you use both exten
sions than the exclamation mark must occur before the equation sign,
just use it intuitively.
The action field of a rule describes the abstract term logfile. A
logfile need not to be a real file, btw. The syslogd(8) provides
the following actions.
Typically messages are logged to real files. The file has to be speci
fied with full pathname, beginning with a slash /.
You may prefix each entry with the minus - sign to omit syncing the
file after every logging. Note that you might lose information if the
system crashes right behind a write attempt. Nevertheless this might
give you back some performance, especially if you run programs that use
logging in a very verbose manner.
This version of syslogd(8) has support for logging output to named
pipes (fifos). A fifo or named pipe can be used as a destination for
log messages by prepending a pipe symbol (|) to the name of the
file. This is handy for debugging. Note that the fifo must be created
with the mkfifo(1) command before syslogd(8) is started.
Terminal and Console
If the file you specified is a tty, special tty-handling is done, same
This syslogd(8) provides full remote logging, i.e. is able to send mes
sages to a remote host running syslogd(8) and to receive messages from
remote hosts. The remote host wont forward the message again, it will
just log them locally. To forward messages to another host, prepend
the hostname with the at sign (@).
Using this feature youre able to control all syslog messages on one
host, if all other machines will log remotely to that. This tears down
List of Users
Usually critical messages are also directed to root on that
machine. You can specify a list of users that shall get the message by
simply writing the login. You may specify more than one user by sepa
rating them with commas (,). If theyre logged in they get the
message. Dont think a mail would be sent, that might be too late.
Everyone logged on
Emergency messages often go to all users currently online to notify
them that something strange is happening with the system. To specify
this wall(1)-feature use an asterisk (*).
Here are some example, partially taken from a real existing site and
configuration. Hopefully they rub out all questions to the configura
tion, if not, drop me (Joey) a line.
# Store critical stuff in critical
This will store all messages with the priority crit in the file
/var/adm/critical, except for any kernel message.
# Kernel messages are first, stored in the kernel
# file, critical messages and higher ones also go
# to another host and to the console
The first rule direct any message that has the kernel facility to the
The second statement directs all kernel messages of the priority crit
and higher to the remote host finlandia. This is useful, because if
the host crashes and the disks get irreparable errors you might not be
able to read the stored messages. If theyre on a remote host, too,
you still can try to find out the reason for the crash.
The third rule directs these messages to the actual console, so the
person who works on the machine will get them, too.
The fourth line tells the syslogd to save all kernel messages that come
with priorities from info up to warning in the file /var/adm/kernel-
info. Everything from err and higher is excluded.
# The tcp wrapper loggs with mail.info, we display
# all the connections on tty12
This directs all messages that uses mail.info (in source LOG_MAIL |
LOG_INFO) to /dev/tty12, the 12th console. For example the tcpwrapper
tcpd(8) uses this as its default.
# Store all mail concerning stuff in a file
This pattern matches all messages that come with the mail facility,
except for the info priority. These will be stored in the file
# Log all mail.info and news.info messages to info
This will extract all messages that come either with mail.info or with
news.info and store them in the file /var/adm/info.
# Log info and notice messages to messages file
This lets the syslogd log all messages that come with either the info
or the notice priority into the file /var/log/messages, except for all
messages that use the mail facility.
# Log info messages to messages file
This statement causes the syslogd to log all messages that come with
the info priority to the file /var/log/messages. But any message com
ing either with the mail or the news facility will not be stored.
# Emergency messages will be displayed using wall
This rule tells the syslogd to write all emergency messages to all cur
rently logged in users. This is the wall action.
# Messages of the priority alert will be directed
# to the operator
This rule directs all messages with a priority of alert or higher to
the terminals of the operator, i.e. of the users root and joey
if theyre logged in.
This rule would redirect all messages to a remote host called finlan
dia. This is useful especially in a cluster of machines where all sys
log messages will be stored on only one machine.
CONFIGURATION FILE SYNTAX DIFFERENCES
Syslogd uses a slightly different syntax for its configuration file
than the original BSD sources. Originally all messages of a specific
priority and above were forwarded to the log file. The modifiers
=, ! and - were added to make the syslogd more flexible
and to use it in a more intuitive manner.
The original BSD syslogd doesnt understand spaces as separators
between the selector and the action field.
Configuration file for syslogd
The effects of multiple selectors are sometimes not intuitive. For
example mail.crit,*.err will select mail facility messages at
the level of err or higher, not at the level of crit or higher.
sysklogd(8), klogd(8), logger(1), syslog(2), syslog(3)
The syslogd is taken from BSD sources, Greg Wettstein (email@example.com
lic.com) performed the port to Linux, Martin Schulze (firstname.lastname@example.org)
made some bugfixes and added some new features.
Version 1.3 1 January 1998 SYSLOG.CONF(5)