У меня есть следующий скрипт, который я запускаю как на компьютере с Arch Linux, так и на растяжке Debian. На машине Arch Linux я могу найти случайное значение, которое было зарегистрировано, тогда как я не могу получить его на компьютере Debian.

Кто-нибудь знает, нужно ли мне что-то настраивать в Debian по-другому? Или, если это только потому, что я использую старую версию systemd на 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"},
)

Команда, которую я использую, чтобы проверить, было ли зарегистрировано случайное число:

journalctl  -S "10 minutes ago" \
            LOGGER="this_is_a_logger" \
            -o json-pretty \
            | jq -r  ".RANDOM_NUMBER"

1 ответ1

1

Нет. Вы используете устаревшую версию python-systemd ; В стабильной версии Debian установлена версия v233, а поддержка параметра extra= адаптера регистратора была добавлена только в версии v234.

Если вы не можете обновить модуль python, используйте «raw» systemd.journal.send() API.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .