在Django+Celery环境下,如何隐藏Selenium Wire冗余日志?
如何隐藏Selenium Wire的冗余日志?
你可以通过两种方式屏蔽Selenium Wire生成的Capturing request/Capturing response这类冗余日志:
方法一:修改Django日志配置(推荐)
直接在settings.py的LOGGING配置中添加针对Selenium Wire的日志规则,将其日志级别设为WARNING及以上,这样INFO级别的捕获日志就不会输出了:
# settings.py LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '%(levelname)s %(asctime)s %(name)s.%(funcName)s:%(lineno)s- %(message)s' }, }, 'handlers': { 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'verbose' }, }, 'loggers': { '': { 'handlers': ['console'], 'level': 'DEBUG', 'propagate': True, }, # 添加Selenium Wire日志控制规则 'seleniumwire': { 'handlers': ['console'], 'level': 'WARNING', # 只输出WARNING及以上级别的日志 'propagate': False, # 禁止日志传递到根logger }, }, }
方法二:在代码中直接设置日志级别
如果不想修改全局配置,可以在初始化Selenium Wire驱动的代码前,手动调整其logger级别:
import logging # 将Selenium Wire的日志级别设为WARNING logging.getLogger('seleniumwire').setLevel(logging.WARNING) # 之后初始化你的Selenium Wire驱动 from seleniumwire import webdriver driver = webdriver.Chrome(...)
补充说明
- 如果你只想屏蔽特定的
Capturing request/response日志,可以进一步定位到具体的子logger(比如seleniumwire.server),但直接控制整个seleniumwirelogger是最简便的方式。 propagate: False的作用是避免Selenium Wire的日志被根logger重复处理,确保配置生效。
内容的提问来源于stack exchange,提问作者mascai
相关产品推荐
相关产品推荐

