如何让Pylint识别logger实例与子类,避免logging格式校验误报
解决Pylint无法正确识别logger实例/子类日志格式配置的方案
问题根源
你当前的pylintrc仅配置了日志格式风格和模块级日志校验规则,没有声明日志实例对应的类需要适用相同的校验规则,因此Pylint对logging.getLogger()返回的实例调用,默认沿用了旧的%格式化校验逻辑,和你的配置不匹配。
具体解决步骤
- 修正pylintrc的[LOGGING]配置段,新增
logging-classes配置项,指定所有需要走日志格式校验的日志类,标准库的logging.Logger以及你自定义的日志子类都可以填,多个用逗号分隔:
[LOGGING] # 原有配置保持,注意logging-modules默认值为logging,如果你没有自定义日志模块的话不需要改成format logging-format-style=new logging-modules=logging # 新增以下配置 logging-classes=logging.Logger,你的自定义日志子类全路径(如utils.log.MyLogger)
- 如果你不需要全局修改,仅想临时跳过某一行的误报,可以在对应代码行末尾加注释:
logger.error("{}".format(APPLE)) # pylint: disable=logging-format-interpolation
- 配置修改完成后重新运行Pylint即可,所有在
logging-classes里声明的类实例调用日志方法时,都会自动适配你设置的new风格格式化校验规则,不会再抛出格式误报。
内容的提问来源于stack exchange,提问作者Divya Mahesh
相关产品推荐
相关产品推荐

