в моем коде Python я читаю конфигурацию журналирования из файла, в котором я поместил формат, который я хотел бы иметь в своем коде.
Когда я пытаюсь перезагрузить конфигурацию во время выполнения, кажется, что набор некоторых дополнительныхenv Я положил в мои средства форматирования потеряны, и у меня есть следующая ошибка.
Traceback (most recent call last):
File "/usr/lib64/python2.7/logging/__init__.py", line 861, in emit
msg = self.format(record)
File "/usr/lib64/python2.7/logging/__init__.py", line 734, in format
return fmt.format(record)
File "/usr/lib64/python2.7/logging/__init__.py", line 469, in format
s = self._fmt % record.__dict__
KeyError: 'hostname'
Logged from file conn.py, line 304
Чтобы заметить, что мой logging.conf выглядит следующим образом:
[formatter_simpleFormatter]
format=[%(levelname)s] %(asctime)s [ThId-%(threadName)-10s] [%(filename)s:%(funcName)s:%(lineno)s] [%(hostname)s] %(message)s
datefmt=%m/%d/%Y %I:%M:%S %p
где имя хоста устанавливается в коде с помощью:
class HostnameFilter(logging.Filter):
hostname = platform.node()
def filter(self, record):
record.hostname = HostnameFilter.hostname
return True
## Log Logger.
class Logger:
"""!@brief
Logger wrapper
"""
def __init__(self):
self.log = logging.getLogger("MYCONF")
self.log.addFilter(HostnameFilter())
Странно то, что ошибки появляются в классах (conn.py), а не в моих, может быть, это код некоторых библиотек, которые я использую,также ведется логирование.
Это поток?Должен ли я сделать что-то еще?