\

Pythonのアプリケーションがsystemdの下で動作している場合、コンソールに出力されるものはすべてjournalに記録されます。しかし、これはプレーンテキストとしてのみログされるため、journalの便利なフィルタリング機能の多くが失われます。

Pythonでsystemdのjournalにログを書き出す方法はいくつかあります。その一つは、python-systemdというパッケージが提供するJournalHandlerを使用する方法です。この方法では、Pythonの標準的なloggingフレームワークを使用してログを書き出すことができます。

import logging
from systemd.journal import JournalHandler

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

このコードは、demoという名前のロガーを作成し、そのロガーにJournalHandlerを追加しています。そして、ロガーのログレベルをINFOに設定し、infoメソッドを使用してメッセージをjournalに送信しています。

また、systemdパッケージもPython 3.6と互換性があり、公式のライブラリとほぼ同じ実装を提供しています。このパッケージを使用すると、以下のように短いコードでjournalにメッセージを書き出すことができます。

from systemd import journal

journal.write("Hello Lennart")

これらの方法を使用すると、Pythonからsystemdのjournalに直接ログを書き出すことができます。これにより、アプリケーションのログ管理をより効率的に行うことが可能になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です