我有一个记录器,用于我在logging.INFO上设置的大多数程序。在我看来,这是最合理的设置,因为我记录的东西不一定是警告,等等.问题是,requests和urllib对各自的HTTP请求都使用logging.INFO。这会为我的一些ETL进程创建超长日志,这在任何方面都不一定有帮助。
我在考虑两种解决方案,第一种是创建一个上下文管理函数,在没有有用的日志信息的ETL部分中将脚本的总体级别设置为logging.WARNING。另一个选项是在logging.INFO和logging.WARNING之间创建一个自定义日志记录级别。为了达到这个目的,哪一个会更容易重复使用和更有效地工作?
发布于 2016-04-27 10:51:45
在配置记录器时,我总是添加logging.getLogger('requests').propagate = False,以避免通过请求库的日志记录来污染日志。
例如:
def init_logger(config_file=None, log_level=logging.INFO):
# Configure the logging system
if config_file:
logging.config.fileConfig(config_file, disable_existing_loggers=False)
else:
logging.basicConfig(level=log_level)
# Avoid output from the requests module
logging.getLogger('requests').propagate = False
def main():
init_logger(…)
if __name__ == '__main__':
main()https://stackoverflow.com/questions/36879333
复制相似问题