Syslog: Syslog, the system logger, is a simple (yet flexible) way for administrators to control the logging of the applications under their control. It requires that the programmers of the applications have used the syslog API. The basic idea behind syslog is that applications can be classified into categories (syslog calls them "facilities"). Syslog then builds upon this by letting an application pick its facility, and then log at different levels. These levels are designed to allow applications to indicate which messages are more important than others. The facilities that syslog provides are (this is just copied from the syslog(3) manual page): authpriv - security/authorization messages cron - clock daemon (cron and at) daemon - other system daemons kern - kernel messages local0-local7 - reserved for local use lpr - line printer subsystem mail - mail subsystem news - news subsystem syslog - messages generated internally by syslogd user(default) - generic user-level messages uucp - UUCP subsystem These facilities are fixed. There is no way to add more. But local0-local7 provide most of the flexibility that is required --- many non-core applications provide a configuration mechanism that admins can use to change the syslog facility to whatever is appropriate for their site. The levels that syslog provides are (this is also just copied from the manual page): emerg - system is unusable alert - action must be taken immediately crit - critical conditions err - error conditions warning - warning conditions notice - normal, but significant, condition info - informational message debug - debug-level message These levels are also fixed. There is no way to add more. The syslog daemon reads a configuration file, syslog.conf, which contains a series of entries of the form: facility.level action Each of these lines indicates that messages logged to facility "facility" that were logged at the level "level" *or higher* should be subject to the action "action". The two main actions that are provided are to send the messages to a file (the action line will just be a file name), or to the syslog daemon on a remote host (the action line will be @remotehost). The facility and level can also be substituted with a * --- which means "any". More advanced syslog daemons can understand the following in the syslog.conf file: facility.=level --- matches messages at level "level" to facility "facility" (compared to anything at level "level" or above) |action --- send selected messages to stdin of command "action". but you shouldn't count on these working on every system. Example: A common, and simple setup for a site might have messages above and at the info level being logged to a central loghost, and being sent to console: $ cat /etc/syslog.conf *.info @loghost *.info /dev/console $