If all your services support logging to stdout/stderr you can get away without a syslog service. Instead of a single logging service consuming logs from all other services s6 is designed to connect each long running service with its own tiny dedicated logging service.
To add to this: it is likely that you *still* need a kind of syslogd, because chances are that not all daemons on your systems have been patched/configured/... to write to stderr instead of using syslog(). So, just in case, you should probably have a syslogd running, to catch everything that still uses syslog() - and potentially help you reconfigure the relevant daemons to use stderr instead. When there is nothing left in your syslogd output, you can remove the syslogd service. The stock syslogd from your distribution will do just fine. Optional, advanced stuff if you'd rather use something more s6-idiomatic than your stock syslogd: download socklog. http://smarden.org/socklog/ socklog's documentation says it was made to work with runit, but it will work with s6 as well. What it does is listen to the /dev/log socket, convert the syslog priority to text, and just send the log message to its stdout. So you can process that output via s6-log just like you would with any other service running under s6, and have it stored and automatically rotated just like any other service, without the need for logrotate. -- Laurent