如何修复pylint logging-not-lazy?

Val*_*yov 63 python pylint

我正在使用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)
Run Code Online (Sandbox Code Playgroud)

我的代码是:

logging.debug("detect mimetypes faild because %s" % e )
Run Code Online (Sandbox Code Playgroud)

我如何修复logging-not-lazypylint?

Zad*_*org 101

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

logging.debug("detect mimetypes faild because %s", e)
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 这是首选,因为它很懒惰.如果级别未设置为"DEBUG",则日志库根本不格式化字符串.这意味着它不需要做额外的工作,除非用户真的想看到那些日志消息. (15认同)
  • 调试日志首选这种格式有什么原因吗? (3认同)