
Eu tenho o seguinte script que executo em uma máquina Arch Linux e também em uma máquina Debian stretch. Na máquina Arch Linux, consigo encontrar o valor aleatório que foi registrado, enquanto não consigo recuperá-lo na máquina Debian.
Alguém sabe se preciso configurar algo no Debian de forma diferente? Ou se é só porque estou executando uma versão mais antiga systemd
no 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"},
)
O comando que estou usando para verificar se o número aleatório foi logado é:
journalctl -S "10 minutes ago" \
LOGGER="this_is_a_logger" \
-o json-pretty \
| jq -r ".RANDOM_NUMBER"
Responder1
Não. Você está usando uma versão desatualizada dopython-systemd; O Debian estável tem v233 enquanto o suporte para o parâmetro do adaptador logger extra=
foi adicionado apenasna versão v234.
Se você não conseguir atualizar o módulo python, use a systemd.journal.send()
API 'bruta'.