В моем проекте python у меня есть настраиваемое средство форматирования журнала, которому я хотел бы передать строку при создании, и чтобы он добавил ее в сообщение, в котором выполняется выход:
class MyCustomFormatter(logging.Formatter):
def __init__(self, *args, **kwargs):
super(MyCustomFormatter, self).__init__(*args, **kwargs)
print(f'configuring {args} {kwargs}')
if 'constants' in kwargs:
self.constants = kwargs.get('constants')
Я настраиваю ведение журнала, используя конфигурацию logging.yml, предоставленную python:
version: 1
formatters:
standardFormatter:
class: MyCustomFormatter
constants: "constants"
handlers:
consoleHandler:
class: logging.StreamHandler
level: INFO
formatter: standardFormatter
stream: ext://sys.stdout
root:
level: DEBUG
handlers: [consoleHandler]
Я ожидал, что «константы» будут переданы в kwargs в MyCustomFormatter. init , однако kwargs кажется пустым. Как мне настроить значение в конфигурации ведения журнала и передать его в мой форматировщик?