Journald는 데비안에서 사용자 정의 필드를 기록하지 않습니다.

Journald는 데비안에서 사용자 정의 필드를 기록하지 않습니다.

Arch Linux 시스템과 Debian 스트레치 시스템 모두에서 실행하는 다음 스크립트가 있습니다. Arch Linux 컴퓨터에서는 기록된 임의의 값을 찾을 수 있지만 Debian 컴퓨터에서는 검색할 수 없는 것 같습니다.

데비안에서 뭔가를 다르게 구성해야 하는지 아는 사람 있나요? 아니면 내가 systemd데비안에서 이전 버전을 실행하고 있기 때문인가요 ?

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

아니요. 오래된 버전을 사용하고 있습니다.파이썬 시스템; Debian stable에는 v233이 있지만 로거 어댑터 extra=매개변수에 대한 지원만 추가되었습니다.버전 v234에서.

Python 모듈을 업그레이드할 수 없는 경우 'raw' systemd.journal.send()API를 사용하세요.

관련 정보