我喜欢str.format
- 语法干净,而且功能丰富。我几乎到处都用它。
不幸的是logging
使用旧的字符串插值(%
运算符)。如果给出str.format
样式字符串,它就会失败。
>>> logging.error("foo {}", 1)
[...]
TypeError: not all arguments converted during string formatting
当然,我可以事先格式化:
>>> logging.error("foo {}".format(1))
但出于性能原因,这对于具有大量调试日志记录调用的大型对象来说并不理想。
有没有办法在str.format
下正确使用logging
样式?