
私は次のスクリプトを Arch Linux マシンと Debian Stretch マシンの両方で実行しています。Arch Linux マシンでは、ログに記録されたランダムな値を見つけることができますが、Debian マシンでは取得できないようです。
systemd
Debian で何かを別の方法で設定する必要があるかどうか知っている人はいますか? それとも、これは単に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 システム; Debian安定版にはv233がありますが、ロガーアダプタのextra=
パラメータのサポートは追加されたばかりですバージョン v234。
Python モジュールをアップグレードできない場合は、「raw」systemd.journal.send()
API を使用します。