L | F | D | W

Logging mit Journalctl


Um journalctl zu benutzen gibt es eine Reihe an Modulen, um das mit Python 3 umzusetzen. Dieses Beispiel verwendet systemd.journal / JournalHandler. Der wichtige Teil hier ist, dass ein Logginghandler eingerichtet wird und wir am Ende anweisen, dass das Logging an systemd übergeben wird.

import logging
import random
import time
from systemd.journal import JournalHandler

# get an instance of the logger object this module will use
logger = logging.getLogger(__name__)

# add the journald handler to the current logger
logger.addHandler(JournalHandler())

# optionally set the logging level
logger.setLevel(logging.DEBUG)

class write_systemd:
def new_message(self,input):
logger.info(input)

if __name__ == '__main__':

write_message=write_systemd()

write_message.new_message('Testlogging über systemd')


Den oben angeführten Codeteil habe ich in ein Pythonscript test_py.py kopiert und ausgeführt.

python test_py.py

Am Ende lässt sich die Logging-Message über Journalctl anzeigen.

$ $ journalctl -e
$ Aug 05 09:32:43 jupiter test_py.py[3755]: Testlogging über systemd

Das ist nur ein einfaches Beispiel, aber man kann die Möglichkeiten erweitern und ambitioniertere Loggings bauen. Das Modul systemd hat hier einiges mehr.

Weitere Quellen und Suchbegriffe: systemd, journalctl, python 3, logging.




geändert, 18. Nov 2022, 23:52
Copyright © 2025 by Philipp