我在我的项目中使用了几个模块,但是,模块从记录器输出了大量日志,这很烦人.所以我通过以下方式关闭日志:
boto_log = logging.getLogger("boto") boto_log.setLevel(logging.CRITICAL) es_log = logging.getLogger("elasticsearch") es_log.setLevel(logging.CRITICAL) urllib3_log = logging.getLogger("urllib3") urllib3_log.setLevel(logging.CRITICAL)
虽然这有效,但代码看起来很冗长.有没有更好,更简单的方法可以做到这一点?
您可以使用logging.config.dictConfig
或禁用现有的记录器logging.config.fileConfig
。
import logging.config logging.config.dictConfig({ 'version': 1, # Other configs ... 'disable_existing_loggers': True })
您还可以遍历现有记录器并手动禁用。
for name, logger in logging.root.manager.loggerDict.iteritems(): logger.disabled=True
也许你可以重构它以削减一些样板:
for _ in ("boto", "elasticsearch", "urllib3"): logging.getLogger(_).setLevel(logging.CRITICAL)