Извлеките дополнительные поля при вызове журнала в средстве форматирования журналов.Python

Программы на Python
Ответить
Anonymous
 Извлеките дополнительные поля при вызове журнала в средстве форматирования журналов.

Сообщение Anonymous »

чтобы я мог добавить дополнительные поля в сообщение журнала, например

logging.info("My log Message", extra={"someContext":1, "someOtherContext":2})


это хорошо

но неясно, как извлечь все дополнительные поля в моем форматере журнала

def format(self, record):
record_dict = record.__dict__.copy()
print(record_dict)


в приведенном выше примере я вижу все свои дополнительные поля в выходном словаре, но они сведены в словарь с кучей другого мусора, который мне не нужен
{'name': 'root', 'msg': 'My log Message', 'args': (), 'levelname': 'INFO', 'levelno': 20, 'pathname': '.\\handler.py', 'filename': 'handler.py', 'module': 'handler', 'exc_info': None, 'exc_text': None, 'stack_info': None, 'lineno': 27, 'funcName': 'getPlan', 'created': 1575461352.0664868, 'msecs': 66.48683547973633, 'relativeCreated': 1253.0038356781006, 'thread': 15096, 'threadName': 'MainThread', 'processName': 'MainProcess', 'process': 23740, 'someContext': 1, 'someOtherContext':2}


есть ли какой-нибудь способ получить все мои дополнительные ключи, не зная их всех заранее,

я пишу форматтер json и хочу создать словарь а-ля

justMyExtra = ?????
to_log = {
"message" record_dict["message"],
**justMyExtra
}


Подробнее здесь: https://stackoverflow.com/questions/591 ... -formatter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»