著者: Didier Kryn 日付: To: dng 題目: Re: [DNG] Everyone OK for using the logger program for runit
logging?
Le 23/10/2018 à 09:23, Steve Litt a écrit :
Just to be simple and clear:
syslog() is a member of the C library which allows any application
to send messages to the system logging facility, through the socket
/var/log/syslog and some lock mechanism (probably using a semaphore) to
prevent two applications to write in the same time. See man syslog.
There is a menagerie of logging daemons which can read these
messages and sort and dispatch them to various places (eg syslog-ng and
rsyslog) rsyslog has been the default on Debian for many years, before
it was replaced by systemd.
All daemons provided by Devuan that I kown of send their messages
by invoking syslog() and don't need the help of an application like
logger to do it.
Logger is a way to redirect to syslog one of the output paths of an
application, by the mean of a pipe, or for a script to send such
messages. Logger reads messages and sends them by invoking the syslog()
function. If you force a daemon to send its messages through stderr and
redirect this stderr to the input of logger, you just add complexity and
overhead and loose flexibility; better let the daemon invoke syslog()
right away.
Note that syslog servers, like rsyslog, can also be fed by many
other paths than the syslog socket, but this is another story.