SyslogBackend#
SyslogBackend implements mw::log::detail::Backend for Linux.
SyslogRecorderFactory selects it when the log mode contains kSystem.
TextRecorder uses it in the same way as SlogBackend on QNX.
SyslogBackend stores LogRecord objects in a CircularAllocator.
ReserveSlot() acquires a slot and FlushSlot() sends its contents to syslog.
No log data leaves the process before FlushSlot() runs.
FlushSlot() maps LogLevel to a syslog(3) priority.
It sends the application ID, context ID, and payload in one formatted call.
kOff and out-of-range levels are ignored.
Syslog::openlog() runs once during construction.
The Syslog object seam enables host tests without a running syslog daemon.
The sequence diagram shows a log call from stream construction to syslog(3).
The sequence below shows a single log call from LogStream construction
through to the syslog(3) call made when the stream is destroyed and the slot
is flushed: