Journald não registra campos personalizados no debian

Journald não registra campos personalizados no debian

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 systemdno 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'.

informação relacionada