Почему 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