Итак, у меня есть функция, которую я определил в модуле:
import logging
formatter = logging.Formatter('%(clientname)|%(asctime)s|%(message)s',"%Y-%m-%d %H:%M:%S")
def setup_logger(name, log_file, level=logging.INFO):
handler = logging.FileHandler(log_file, mode='a')
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
return logger
Я хочу добавить имя клиента при входе в систему. Теперь мое приложение является флягой, которое охватывает много модулей, поэтому я определил этот регистратор. Я использую getLogger, чтобы получить мой журнал в других модулях. В главном приложении фляги, то есть server.py, я определил регистратор следующим образом:
info_logger = logger.setup_logger('info_logger', LOG_DIR + "status_log.csv")
А потом у меня есть цикл, который проходит по нескольким клиентам. Всякий раз, когда начинается цикл, я переопределяю регистратор:
info_logger = logging.LoggerAdapter(info_logger, {'clientname':configData[obj]["client_name"]})
Но это дает мне ошибки:
- ValueError: неподдерживаемый символ формата '|'
- AttributeError: объект 'LoggerAdapter' не имеет атрибута 'manager'
- KeyError: 'clientname'
Я искал правильный способ сделать это. Я прочитал и следовал за документацией, но безрезультатно.