为什么 python 日志记录模块使用旧的字符串格式?

bal*_*lki 2 python logging string-formatting

Python 有两个主要的字符串格式化选项%str.format. logging模块具有惰性功能。

logging.debug('The value is %s', huge_arg)
Run Code Online (Sandbox Code Playgroud)

如果不打印日志行,则不会构造字符串。但是,此功能仅在刺痛使用旧式格式时才有效%。有没有办法使用str.format这个懒惰的功能?可能有一个命名的 arg,例如:

logging.debug('The value is {}', fmt_arg=(huge_arg))
Run Code Online (Sandbox Code Playgroud)

Tim*_*ers 5

您问题的唯一答案是 - 到目前为止 - 没有人自愿更改代码logging以支持更新的格式功能。如果您是自愿的,为什么不在Python-Dev 邮件列表上询问呢?我预计这比您意识到的更棘手(例如,可能已经调用了logging恰好传递fmt_arg关键字参数的函数)。祝你好运 ;-)