我如何才能轻松地设置所有urllib3.*
个子博客用户,而不需要明确地设置每个或过滤.
我相信urllib3
会让它和它的子博客们变得更好,但是:
loggers = [logging.getLogger(name) for name in logging.root.manager.loggerDict]
for name in loggers:
if args.debug:
name.setLevel(logging.DEBUG)
else:
name.setLevel(logging.INFO)
logging.getLogger('urllib3').setLevel(logging.WARN) # only set root not subloggers
print(loggers)
#[ <Logger urllib3.util.retry (DEBUG)>,
# <Logger urllib3.util (DEBUG)>,
# <Logger urllib3 (WARNING)>,
# <Logger urllib3.connection (DEBUG)>,
# <Logger urllib3.response (DEBUG)>,
# <Logger urllib3.connectionpool (DEBUG)>,
# <Logger urllib3.poolmanager (DEBUG)>,
# :
我目前的解决办法是将我的所有模块Logging-name以root.
开头,并将其他所有内容显式设置为logging.WARN
,然后我也会得到根记录器,但命名不太灵活:
loggers = [logging.getLogger(name) for name in logging.root.manager.loggerDict]
for name in loggers:
if not re.search(r'^<Logger\sroot', str(name)):
name.setLevel(logging.WARN)
else:
if args.debug:
name.setLevel(logging.DEBUG)
else:
name.setLevel(logging.INFO)
print(loggers)