Вы можете установить более высокий уровень журнала, как это:
import logging
logger = logging.getLogger('chardet')
logger.setLevel(logging.CRITICAL)
В общем, если вы хотите узнать, кто создает какие-то надоедливые журналы, сделайте следующее:
Запустите журналы, которые должны быть отправлены, запустив код. В этом случае
req = urllib2.Request(url, headers=hdr)
page = urllib2.urlopen(req, timeout=5)
soup = BeautifulSoup(page.read(), "lxml")
Тогда регистратор должен быть в этом списке
import logging
print(logging.Logger.manager.loggerDict.values())
[..., 'chardet', ...]
Попробуйте отключить регистраторы один за другим. Как только вы больше не видите журналы, вы знаете, какой журнал генерирует его:
import logging
for name in logging.Logger.manager.loggerDict.values():
print(name)
logger = logging.getLogger(name)
logger.setLevel(logging.CRITICAL)
# I have left the exact code here for demonstration purposes
req = urllib2.Request(url, headers=hdr)
page = urllib2.urlopen(req, timeout=5)
soup = BeautifulSoup(page.read(), "lxml")
Затем задайте уровень журнала перед запуском кода, генерирующего журналы:
import logging
logger = logging.getLogger('chardet')
logger.setLevel(logging.CRITICAL)
# No log output any more from here on
req = urllib2.Request(url, headers=hdr)
page = urllib2.urlopen(req, timeout=5)
soup = BeautifulSoup(page.read(), "lxml")