【发布时间】:2018-01-30 09:16:11
【问题描述】:
对于 Python 3.6 的日志记录:
我想让{msecs} 在使用style="{" 时以格式字符串工作。
我只想要 3 位数的毫秒。
但是,以下所有尝试都失败了:{msecs:3.0f}{msecs:03d} # this is in the official documentation and doesn't work
我在这里做错了什么?我的总体印象是str.format() 中的format_spec 在fmt 参数中效果不佳
import logging
rl = logging.getLogger()
formatter_stdout = logging.Formatter(
fmt='{asctime},{msecs:03d} {message}',
style='{',
)
ch = logging.StreamHandler()
ch.setFormatter(formatter_stdout)
rl.addHandler(ch)
rl.warning('asdf')
【问题讨论】:
-
你试过
f'{msecs:0.3f}'吗? -
得到奇怪的结果:
2018-01-30 03:22:28,904,904.217 asdf -
哦,我明白了。
f'{msecs:3.0f}'然后工作。但不幸的是,这不能解决您的格式化程序问题。
标签: python logging format-specifiers