[systemd-devel] Systemd service and structured logging

Mantas Mikulėnas grawity at gmail.com
Mon May 6 09:09:02 UTC 2019

On Mon, May 6, 2019 at 10:09 AM Thomas Güttler <guettliml at thomas-guettler.de>

> Am 03.05.19 um 13:29 schrieb Jérémy ROSEN:
> > if you want the whole power of structured logs, you need to use the
> journald API

On the other hand, JSON parsing might be a useful addition to journald, as
apparently "@cee: {<jsondict>}" is a quite common syslog format.

> > I am not sure in what language your program is written, but if you are
> using C, it's pretty trivial to do
> > (and i'm pretty sure most bindings are trivial to use too)
> Yes, this would work.
> Solution 1:
>   My service (written Python) uses the journald API.
>   Disadvantage: My script can't be run under a different environment
> (without journald)
I would suggest implementing support for multiple logging backends – don't
call journald APIs directly and don't print out JSON directly, but have
abstract functions such as log_info(text, **kvpairs) or something such.
That's what many programs already do for file/syslog/journal backends.
(Possibly just use the `logging` module in python?)

Mantas Mikulėnas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20190506/090f670e/attachment.html>

More information about the systemd-devel mailing list