Python全局DEBUG日志下,如何单独设置connectionpool.py为INFO?
解决方法
你可以在全局DEBUG配置之后,单独针对connectionpool对应的模块logger设置日志级别为INFO,具体代码如下:
import logging log_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' # 全局设置日志级别为DEBUG logging.basicConfig(format=log_format, level=logging.DEBUG) # 单独将connectionpool模块的日志级别设为INFO,隐藏其DEBUG消息 logging.getLogger('urllib3.connectionpool').setLevel(logging.INFO)
说明
logging.basicConfig是配置根logger的级别为DEBUG,确保全局大部分模块的DEBUG消息能正常输出。- 每个Python模块在使用日志时,通常会创建以自身模块名为名称的logger(比如urllib3的连接池模块对应的logger名称是
urllib3.connectionpool)。通过logging.getLogger('模块名')获取到该模块的logger后,单独设置它的级别为INFO,就能过滤掉该模块的所有DEBUG级别的日志,同时不影响其他模块的DEBUG输出。 - 如果不确定目标模块的logger名称,可以先运行原有代码,查看日志中
%(name)s字段的内容,那个就是对应的logger名称,替换到上面的代码中即可。
内容的提问来源于stack exchange,提问作者Patrick Rode
相关产品推荐
相关产品推荐

