Корень logger Python, скрывающий уровни потомков - PullRequest
1 голос
/ 20 марта 2012

Почему logging игнорирует настройки, которые я настроил для suds logger?

В моем приложении Django у меня настроено ведение журнала в settings.py:

logging.basicConfig(
    level = logging.DEBUG,
    format = " %(levelname)s  [%(asctime)s] %(filename)s: %(message)s",
    datefmt='%d-%b %H:%M:%S',
    )

Я также использую suds в этом приложении, но не хочу видеть множество сообщений от suds, поэтому я добавил это:

SUDS_LOGGING_LEVEL = logging.CRITICAL
logging.getLogger('suds.client').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.transport').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.xsd.schema').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.wsdl').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.resolver').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.xsd.query').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.xsd.basic').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.binding.marshaller').setLevel(SUDS_LOGGING_LEVEL)    

И все же я все еще вижу сообщения sud DEBUG.

Если я ставлю точку останова pdb непосредственно перед вызовом suds, я подтверждаю, что logging.getLogger('suds.client').level равно 50 (logging.CRITICAL). Я перехожу к линии suds и вижу все записи.

Если я временно изменяю уровень для корневого регистратора, ведение журнала подавляется:

original_log_level = logging.getLogger().level
logging.getLogger().setLevel(logging.CRITICAL)

... do some suds stuff ...

logging.getLogger().setLevel(original_log_level)

Все это говорит о том, что suds игнорирует уровни регистрации пены.

Почему?

Django 1.2.7, Python 2.7, suds 0.4 GA

1 Ответ

3 голосов
/ 20 марта 2012

Добавить %(name)s к строке формата.Это точно скажет, какие регистраторы пены все еще регистрируются - возможно, вы не получили их все.(Например, код в suds / client.py регистрирует в регистраторе с именем «suds.client», но также регистрирует в регистраторе с именем «suds.metrics».)

Также попробуйте установить уровень «suds»'зарегистрируйтесь в КРИТИЧЕСКОМ и посмотрите, сокращает ли это выход регистрации.

...