Python logging как отследить имя хоста в логах? - PullRequest
0 голосов
/ 09 апреля 2019

Я использую регистрацию в Python следующим образом:

logger = logging.getLogger("my_logger")
logger.info("Some text.")

У меня есть куча устройств IoT, которые все работают (делают журналы).Они передают свои данные журнала в базу данных.Чтобы различать источник, мне нужно указать IP-адрес источника.

Есть ли способ получить имя хоста с помощью ведения журнала?Отслеживается ли / отслеживается ли IP-адрес или имя хоста в LogRecords?

В общем, как лучше всего добавить имя хоста в LogRecord?

1 Ответ

2 голосов
/ 09 апреля 2019

Это можно сделать, добавив настраиваемый фильтр журнала и средство форматирования, которое помещает имя хоста в сообщения журнала.

import logging, platform

class HostnameFilter(logging.Filter):
    hostname = platform.node()

    def filter(self, record):
        record.hostname = HostnameFilter.hostname
        return True

handler = logging.StreamHandler()
handler.addFilter(HostnameFilter())
handler.setFormatter(logging.Formatter('%(asctime)s %(hostname)s: %(message)s', datefmt='%b %d %H:%M:%S'))

logger = logging.getLogger()
logger.addHandler(handler)
logger.setLevel(logging.INFO)

logger.info('Hello, world!')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...