Re: Unifying logging by default
- Date: Wed, 20 Feb 2019 15:42:32 -0800
- From: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
- Subject: Re: Unifying logging by default
On Wed, Feb 20, 2019 at 02:03:08PM -0800, Josh Triplett wrote:
> While there are *absolutely* configurations in which system
> administrators want to log to arbitrary locations and files, I would
> like to propose that for consistency we should configure software to
> unify logging into syslog and/or journald by default. In particular, I'd
> propose that daemons and applications should default to logging to
> syslog (working with any installed syslog implementation providing
> /dev/log), and that daemons run via systemd units may detect or be
> configured to log to stdout/stderr which will be wired to the sysadmin's
> preferred log target.
To suggest a more concrete proposal, I'd propose the following rough
sketch of future logging policy (not to be incorporated into Policy
until after packages generally start following it):
- If the software has a well-established set of logfile analyzers
specific to its logfile location and format, and the most commonly
used logfile analyzers do not support reading data from syslog or
journald, the software MAY continue using standalone logfiles (instead
of or in addition to the below behavior) until that changes;
alternatively, such logfile analyzers MAY facilitate the user's
configuration of the software to log to a location they understand.
- The software MAY (but is not required to) detect that it is running
with stderr or stdout connected to journald, and in that case, log to
stderr or stdout, optionally using structured logging. The software
MAY detect that /dev/log is connected to journald, and in that case,
log to journald directly if it has such support. If the software does
not support any such detection, any systemd unit file invoking it
SHOULD pass an explicit command-line option enabling logging to
- Otherwise, if /dev/log exists, the software SHOULD log to /dev/log.
The software MAY choose to use a structured log format if supported.
- Otherwise, the software SHOULD choose an appropriate fallback behavior,
such as logging to a standalone file, or displaying log messages to
the user if running interactively.
Some concrete use cases:
- Running logs through a log analyzer.
- Shipping logs over the network to an off-machine logging
- Controlling where log messages go using syslog configuration.
- Logging to an in-memory journal on a system without persistent