
Ich habe das folgende Skript, das ich sowohl auf einem Arch Linux-Rechner als auch auf einem Debian Stretch-Rechner ausführe. Auf dem Arch Linux-Rechner kann ich den protokollierten Zufallswert finden, während ich ihn auf dem Debian-Rechner nicht abrufen kann.
Weiß jemand, ob ich in Debian etwas anders konfigurieren muss? Oder liegt das nur daran, dass ich eine ältere Version von systemd
Debian verwende?
import logging
import random
from systemd.journal import JournalHandler
LOGGER = logging.getLogger("this_is_a_logger")
JOURNAL_HANDLER = JournalHandler()
JOURNAL_HANDLER.setFormatter(logging.Formatter("%(message)s"))
# add the journald handler to the current logger
LOGGER.addHandler(JOURNAL_HANDLER)
# optionally set the logging level
LOGGER.setLevel(logging.DEBUG)
LOGGER.info(
"test log event to systemd!",
extra={"RANDOM_NUMBER": random.randint(0, 10), "LEVEL": "INFO"},
)
Der Befehl, den ich verwende, um zu prüfen, ob die Zufallszahl protokolliert wurde, lautet:
journalctl -S "10 minutes ago" \
LOGGER="this_is_a_logger" \
-o json-pretty \
| jq -r ".RANDOM_NUMBER"
Antwort1
Nein. Sie verwenden eine veraltete Version vonpython-systemd; Debian Stable hat v233, während die Unterstützung für den extra=
Parameter des Logger-Adapters erst hinzugefügt wurdein Version v234.
Wenn Sie das Python-Modul nicht aktualisieren können, verwenden Sie die „rohe“ systemd.journal.send()
API.