Syslog-async replaces syslog() with a non-blocking alternative, allowing for smoother performance in the background while not interrupting other processes.
The code was initially designed for dnsmasq to fix a deadlock issue between syslogd and dnsmasq. It was successful in ensuring the daemon acts as expected instead of continuing to log. Hence, it should be useful for any daemon that values functionality over logging continuity.
The syslog-async project has undergone testing on various systems, including Linux 2.6, OpenBSD 4.0, and FreeBSD 6.0, and has been run with both syslogd and syslog-ng. Note that the current version is not threadsafe.
The header file, syslog_async.h, is extensively commented and explains how to use the library. The code is API compatible with the POSIX-standard syslog. More impressively, the latest release is now under a dual license: GPLv2 and GPLv3.
In summary, the syslog-async project is an excellent option for users requiring a reliable syslog() replacement. The library never blocks, is API compatible, and can be integrated with various systems.
Version 0.2: N/A