如何修复pylint的logging-not-lazy问题?

108

我正在使用prospector检查我的代码。 Pylint针对我的调试消息返回了一个logging-not-lazy警告。

Line: 31
  pylint: logging-not-lazy / Specify string format arguments as logging function parameters (col 16)   Line: 42
  pylint: logging-not-lazy / Specify string format arguments as logging function parameters (col 12)

我的代码是:

logging.debug("detect mimetypes faild because %s" % e )

我该如何在pylint中修复logging-not-lazy问题?

1个回答

165

这意味着您应该将代码重写为:

logging.debug("detect mimetypes faild because %s", e)

根据https://docs.python.org/2/library/logging.html

Logger.debug(msg, *args, **kwargs)

... 在此记录器上以 DEBUG 级别记录消息。 msg 是消息格式字符串,args 是要使用字符串格式化运算符合并到 msg 中的参数。(请注意,这意味着您可以在格式字符串中使用关键字和单个字典参数。)...


6
为什么使用这种格式记录调试日志更为常见? - Stevoisiak
46
如果日志级别没有设置为“DEBUG”,则优选此选项是因为它很懒惰。这意味着,如果用户不真正想看那些日志消息,日志记录库根本不需要对字符串进行格式化,因此无需执行额外的工作。 - kichik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接