Python中过滤Box SDK警告失效的问题求助
如何关闭Box SDK生产环境中的日志输出?
你遇到的问题其实很常见:你用了warnings.filterwarnings()来过滤警告,但Box SDK的这些日志信息并不是通过Python的warnings模块输出的,而是用标准库的logging模块打印的,所以你的过滤代码自然不会生效。
要解决这个问题,你需要直接针对logging模块来调整Box SDK相关日志的级别。具体操作如下:
- 先获取Box SDK对应的logger实例,然后把它的日志级别调高,这样就只会输出更严重的错误信息(比如ERROR或CRITICAL),而不会显示WARNING级别的调试内容。
- 具体代码示例:
import logging # 获取boxsdk全局logger box_logger = logging.getLogger('boxsdk') # 将日志级别设置为ERROR,仅展示ERROR及以上级别的日志 box_logger.setLevel(logging.ERROR)
如果想要彻底关闭Box SDK的所有日志输出,可以把级别设置为比最高级别CRITICAL更高的数值,这样任何级别的日志都不会被打印:
box_logger.setLevel(logging.CRITICAL + 1)
另外,如果你只想精准屏蔽某个子模块(比如你看到的boxsdk.network.default_network)的日志,也可以单独定位调整:
network_logger = logging.getLogger('boxsdk.network.default_network') network_logger.setLevel(logging.ERROR)
这样就能解决你在生产环境中看到冗余Box SDK日志的问题了。
内容的提问来源于stack exchange,提问作者jsf80238
相关产品推荐
相关产品推荐

