Pylint logging-not-lazy告警定位咨询:哪段代码触发该问题
关于Pylint "logging-not-lazy"告警的问题解析
嘿,咱们直接说重点:触发这个告警的是你代码里的这一行:
LOGGER.info('Filename format: ' + filename_format)
为什么会触发告警?
Pylint的logging-not-lazy规则是在提醒你不要提前拼接日志字符串再传给日志函数。原因很简单:日志系统有级别过滤机制——如果当前程序的日志级别设置得比INFO高(比如只输出WARNING及以上),这条INFO级别的日志根本不会被打印,但你提前做了'Filename format: ' + filename_format的字符串拼接操作,这就属于做了无用功,白白消耗了性能。
另外,用日志函数自带的格式化参数写法,也会让代码更符合Python日志的规范,可读性更好。
怎么修改?
你只需要把字符串拼接改成让日志函数自己处理格式化的方式,把格式化字符串和参数分开传递就行:
LOGGER.info('Filename format: %s', filename_format)
如果你的Python版本支持,也可以用str.format的风格:
LOGGER.info('Filename format: {}', filename_format)
这样修改后,只有当这条日志确实需要被输出时,才会执行字符串格式化操作,既省性能又符合规范,Pylint的告警也就消失啦。
内容的提问来源于stack exchange,提问作者user8685751
相关产品推荐
相关产品推荐

