
我有以下腳本,可以在 Arch Linux 機器和 Debian Stretch 機器上運行。在 Arch Linux 機器上,我能夠找到記錄的隨機值,而我似乎無法在 Debian 機器上檢索它。
有人知道我是否需要在 Debian 中進行不同的配置嗎?或者這只是因為我systemd
在 Debian 上運行舊版本?
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"},
)
我用來檢查隨機數字是否已記錄的命令是:
journalctl -S "10 minutes ago" \
LOGGER="this_is_a_logger" \
-o json-pretty \
| jq -r ".RANDOM_NUMBER"
答案1
不。python-systemd; Debian 穩定版本有 v233,但extra=
僅添加了對記錄器適配器參數的支持在 v234 版本中。
如果無法升級 python 模組,請使用「原始」systemd.journal.send()
API。