Официальная документация содержит таблицу с всеми доступными атрибутами для ведения журнала .
Эти атрибуты, в свою очередь, могут использоваться в средствах форматирования (например, '[{asctime}] {levelname} [{threadName}] [{name}.{funcName}:{lineno}] {message}'
является одним из таких средств форматирования).
Однако можно ли получить список всех доступных атрибутов во время выполнения, не полагаясь на документацию?
Допустим, моя цель состоит в том, чтобы процедурным образом создать средство форматирования, которое включает все атрибуты независимо от версия. Как отмечается в самой документации, processName
был добавлен в 3.1 и не был там указан, когда он был еще 3.0, что означает, что если бы в моем скрипте использовались жестко закодированные атрибуты 3.0, он не использовал бы processName
, даже если он выполнялся в переводчик 3.1 ^.