Journald не регистрирует пользовательские поля в Debian

423
Varun Madiath

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

Кто-нибудь знает, нужно ли мне что-то настраивать в Debian по-другому? Или это потому, что я использую старую версию systemdDebian?

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" 
0

1 ответ на вопрос

1
grawity

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

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

Похожие вопросы