Python 有两个主要的字符串格式化选项%
和str.format
. logging
模块有一个惰性特性。
logging.debug('The value is %s', huge_arg)
如果不打印日志行,则不会构造字符串。但是,此功能仅在 sting 使用旧样式%
格式时才有效。有没有办法使用str.format
这个惰性功能?可能有一个命名的参数,如:
logging.debug('The value is {}', fmt_arg=(huge_arg))
Python 有两个主要的字符串格式化选项%
和str.format
. logging
模块有一个惰性特性。
logging.debug('The value is %s', huge_arg)
如果不打印日志行,则不会构造字符串。但是,此功能仅在 sting 使用旧样式%
格式时才有效。有没有办法使用str.format
这个惰性功能?可能有一个命名的参数,如:
logging.debug('The value is {}', fmt_arg=(huge_arg))
您的问题的唯一答案是 - 到目前为止 - 没有人自愿更改logging
代码以支持更新的格式功能。如果你是志愿者,为什么不在Python-Dev 邮件列表中询问呢?我预计它比您意识到的要棘手(例如,可能已经调用了logging
恰好传递fmt_arg
关键字参数的函数)。祝你好运 ;-)
我有点害怕反驳 TimBot,但我有另一个答案:-)
日志记录模块使用 % 格式,因为它早于 Python 中 {} 格式的出现(logging
出现在 2.3str.format
和 2.6 中)。日志记录尚未转换为 {} 格式,因为:
string.Template