Python logger адаптер регистрирует дополнительные ключевые рабочие аргументы - PullRequest
0 голосов
/ 30 октября 2019

Я хочу создать собственный класс регистратора, используя LoggerAdapter. Я хочу, чтобы этот класс мог обновлять объект контекста (с аргументами ключевого слова), а затем всякий раз, когда сообщение регистрируется, передает словарь всех аргументов ключевого слова вместе с сообщением. Например:

logger = logging.getlogger(__name__)
logger.log('Some test message', extra={someKey='someValue'})
logger.log('Another test message')

И результат этого будет:

'{message: "Some test message", someKey: "someValue"}'
'{message: "Another test message", someKey: "someValue"}'

Является ли использование LoggerAdapter правильным подходом для этого варианта использования?

1 Ответ

0 голосов
/ 01 ноября 2019

Кажется так. Что-то вроде

logger = logging.getlogger(__name__)
logger = logging.LoggerAdapter(logger, {someKey='someValue'})
logger.log('Some test message')
logger.log('Another test message')

, и вы можете изменить logger.extra по своему желанию, включая удаление с помощью

logger.extra = None
...