Unix and Node: Syslog

2012-04-12 00:00:00 +0100 by Alex R. Young

Syslog is a standardised logging system that's present in most BSD and Linux distributions. There are various implementations; syslog-ng is a popular one that I usually find myself using. The interesting thing about syslog is it can be configured to store messages anywhere -- logs can be written to files or remote daemons.

The main reason for using syslog in your Unix-oriented projects is to separate the concerns between your application code and configuration. The same application logging to a local syslog daemon could log to a remote daemon without any changes to the application itself. In addition, syslog also has lots of useful features like log rotation, file compression, and interoperability with other applications that use syslog.

It's amazing to think that syslog was originally created by Eric Allman as part of Sendmail. Over the years it's found uses far beyond its origins, and as a result there are now several standards that pertain to syslog