Journald no registra campos personalizados en Debian

Journald no registra campos personalizados en Debian

Tengo el siguiente script que ejecuto tanto en una máquina Arch Linux como en una máquina Debian Stretch. En la máquina Arch Linux puedo encontrar el valor aleatorio que se registró, mientras que parece que no puedo recuperarlo en la máquina Debian.

¿Alguien sabe si necesito configurar algo en Debian de manera diferente? ¿O si esto se debe simplemente a que estoy ejecutando una versión anterior de 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"},
)

El comando que estoy usando para verificar si se registró el número aleatorio es:

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

Respuesta1

No. Estás usando una versión desactualizada desistema-python; Debian estable tiene v233, mientras que extra=solo se agregó soporte para el parámetro del adaptador del registradoren la versión v234.

Si no puede actualizar el módulo de Python, utilice la systemd.journal.send()API "sin formato".

información relacionada