Я не уверен, есть ли чистый способ сделать это через любую публичную функцию logging
.Просматривая пакет CPython source , значения по умолчанию не откладываются и четко определены в любой структуре (например, dict).Вместо этого они жестко закодированы в функцию logging.basicConfig
.В частности, эта функция содержит несколько общих ключевых слов «по умолчанию», но, к сожалению, для ваших целей они жестко закодированы в функцию.Например:
style = kwargs.pop("style", '%')
При этом используется регистратор root
(который сам по себе root = RootLogger(logging.WARNING)
) и добавляет к нему некоторую конфигурацию.
Один способ работы с этим, который действительноне идеально, было бы посмотреть на конфигурацию «до и после», связанную с logging.root
до и после вызова logging.basicConfig()
*.Например:
>>> root = logging.root
>>> root.handlers
[]
>>> logging.basicConfig()
>>> root.handlers
[<StreamHandler <stderr> (NOTSET)>]
Наконец, я хотел бы отметить, что стиль по умолчанию исходит из:
logging._STYLES['%']
, который получается %(levelname)s:%(name)s:%(message)s
.
* Если вы вызываете эту функцию без аргументов, на самом деле не так уж много сделано;Основным изменением является добавление StreamHandler
(stdout) к корневому логгеру, а затем добавление Formatter
к этому.