UCSPILOGD(8)

NAME
ucspilogd - convert syslog facility numbers and alert levels into names

SYNOPSIS
ucspilogd [-d undef] [var ...]

DESCRIPTION
ucspilogd reads a stream of syslog-like messages on stdin. Those messages can be newline-terminated or null-terminated.

For every line it reads: if it has been given var arguments, it writes the value of every var environment variable, followed by a colon and a space.

If the line begins with a syslog facility number and/or alert level in the syslog format, it converts them into a human-readable name in the syslogd fashion.

It then writes the processed line to stdout.

You can emulate the whole syslogd behaviour by combining the following components:

•   A Unix stream super-server such as s6-ipcserver(8) listening to the Unix domain socket /dev/log, to connect to the kernel log-reading interface.

•   ucspilogd running under that super-server, to read the logs and perform adequate transformations.

•   A logger such as s6-log(8) to store the logs into the filesystem.

•   A supervision mechanism such as s6, to ensure ease of use and reliability of the whole chain.

The resulting suite of programs is still smaller, and way more reliable, than a standard syslogd.

In the examples/syslogd-linux subdirectory of the s6 package, you will find a suitable ucspilogd s6-service-directory(7). The run scripts are written in the execline[1] language.

Using ucspilogd as a klogd replacement

Certain Unix kernels offer a nice interface to the kernel logs. For instance, the Linux kernel provides the /proc/kmsg fake file, that can be opened and read like a normal file, excepts that it gives the kernel logs when they are available and blocks otherwise. You can use ucspilogd to process data from those interfaces.

The examples/klogd-linux subdirectory of the s6 package is an s6-service-directory(7) providing such a klogd service for Linux, using the /proc/kmsg interface.

OPTIONS

-d undef
    When a variable var given on the command line is actually undefined at ucspilogd execution time, print undef in place of what would be the variable's value on every line. Default is the string ‘<undefined>’.

SEE ALSO
s6-log(8)

[1] https://skarnet.org/software/execline/

This man page is ported from the authoritative documentation at: https://skarnet.org/software/s6/ucspilogd.html

AUTHORS
Laurent Bercot Alexis <flexibeast@gmail.com> (man page port)