Comment se connecter à journald (systemd) via Python?
Je voudrais logging.info() pour aller à journald (systemd).
Jusqu'à maintenant je n'ai trouvé que des modules python qui lire journald (pas ce que je veux) ou des modules qui fonctionnent comme ceci: journal.send('Hello world')
import logging
from systemd.journal importJournalHandler
log = logging.getLogger('demo')
log.addHandler(JournalHandler())
log.setLevel(logging.INFO)
log.info("sent to journal")
Pourriez-vous aider à prendre un coup d'oeil à ceci: stackoverflow.com/questions/40748156/...? de systemd.journal d'importation JournalHandler a erreur, à la place : à partir de systemd importation importation de feuille de journalisation journalisation.basicConfig(niveau=logging.DEBUG) logger = logging.getLogger() enregistreur.addHandler(journal.JournaldLogHandler())
Une alternative pour le paquet officiel, le paquet systemd fonctionne avec python 3.6. Sa source est également sur github.
La mise en œuvre est un miroir de l'officiel de la lib, avec quelques modifications mineures:
import logging
from systemd import journal
log = logging.getLogger('demo')
log.addHandler(journal.JournaldLogHandler())
log.setLevel(logging.INFO)
log.info("sent to journal")
ou encore la plus courte de la méthode:
from systemd import journal
journal.write("Hello Lennart")
Je ne suis pas sûr qu'avec votre système, mais cela fonctionne bien. J'ai créé un exemple simple Vagrantfile qui fera démarrer le système avec python 3.5, installez le paquet systemd, et exécuter l'exemple: gist.github.com/schlueter/ce1f2e32ef350bfa21e1b8b8605711b6. Je vais avoir de la difficulté à trouver d'autres options de journalisation, d'autres que log.info(message). Existe-il des méthodes équivalentes, à l'instar de log.warning(message)? L'enregistreur de classe est sans rapport avec le paquet systemd, sauf que c'est l'interface par laquelle le paquet systemd est utilisé. Consultez sa documentation dans le docs.python.org/3.7/library/logging.html.
python-systemd a un JournalHandler vous pouvez utiliser avec la journalisation.
À partir de la documentation:
de systemd.journal d'importation JournalHandler a erreur, à la place : à partir de systemd importation importation de feuille de journalisation journalisation.basicConfig(niveau=logging.DEBUG) logger = logging.getLogger() enregistreur.addHandler(journal.JournaldLogHandler())
OriginalL'auteur martineg
Une alternative pour le paquet officiel, le paquet systemd fonctionne avec python 3.6. Sa source est également sur github.
La mise en œuvre est un miroir de l'officiel de la lib, avec quelques modifications mineures:
ou encore la plus courte de la méthode:
Je vais avoir de la difficulté à trouver d'autres options de journalisation, d'autres que
log.info(message)
. Existe-il des méthodes équivalentes, à l'instar delog.warning(message)
?L'enregistreur de classe est sans rapport avec le paquet systemd, sauf que c'est l'interface par laquelle le paquet systemd est utilisé. Consultez sa documentation dans le docs.python.org/3.7/library/logging.html.
OriginalL'auteur bschlueter