[systemd-devel] Systemd service and structured logging
Lennart Poettering
lennart at poettering.net
Tue May 7 12:37:30 UTC 2019
On Mo, 06.05.19 09:12, Thomas Güttler (guettliml at thomas-guettler.de) wrote:
> Solution 1:
> My service (written Python) uses the journald API.
> Disadvantage: My script can't be run under a different environment
> (without journald)
Doesn't Python have an abstraction for that that does some basic
structured logging and is able to fallback to classic text-only
logging if that's not available?
> Solution 2:
> I let my service write json to stdout and a wrapper collects these lines and the wrapper uses the journald API.
> Disadvantage: Systemd is monitoring the wrapper, not the real service. Signal handling for stopping and restarting
> is not direct from systemd to service.
Note that JSON is considerably more complex than the simply text
key/value pairs the journal consumes. Moreover, for the journal we
have a vocabulary of common log fields defined, not sure how that
would translate either way to json...
Note that "journalctl -o json" may be used to convert journal logging
to json, but there's no approach for the reverse, since it's not clear
how to map thta.
As mentioned, the simpler key/value logic of the journal is chosen on
purpose, so that we can relatively straight-forwardly index by these
fields, which is not obvious when you consume full json.
Lennart
--
Lennart Poettering, Berlin
More information about the systemd-devel
mailing list