我有以下脚本,可在 Arch Linux 机器和 Debian 拉伸机器上运行。在 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。