web-dev-qa-db-ja.com

Python経由でjournald(systemd)にログインする方法は?

logging.info()をjournald(systemd)に移動してください。

これまでは、python journaldを読み取るモジュール(私が望んでいるものではない)または次のように機能するモジュールのみが見つかりました:journal.send('Hello world')

17
guettli

python-systemd にはロギングフレームワークで使用できる JournalHandler があります。

ドキュメントから:

import logging
from systemd.journal import JournalHandler

log = logging.getLogger('demo')
log.addHandler(JournalHandler())
log.setLevel(logging.INFO)
log.info("sent to journal")
25
martineg

公式パッケージの代わりに systemdパッケージ はpython 3.6で動作します。そのソースも github にあります。

実装は、いくつかのマイナーな変更を伴う公式libのミラーです。

import logging
from systemd import journal

log = logging.getLogger('demo')
log.addHandler(journal.JournaldLogHandler())
log.setLevel(logging.INFO)
log.info("sent to journal")

またはさらに短い方法:

from systemd import journal

journal.write("Hello Lennart")
8
bschlueter