我见过the docs,但我不明白。
当我有一个像
这样的日志格式字符串时'%(asctime)s %(levelname)-8s %(name)-15s %(message)s'
括号后的s
是什么意思? -8s
会产生什么影响?
从输出看,我认为这是字符串的最小长度。但为什么不是通常的格式化语法
'{asctime} {levelname:<8} {name:<15} {message}'
使用?
是否可以在其中包含自定义值(例如,标识当前处理的元素类型的ID),或者这必须在消息中?
答案 0 :(得分:4)
但为什么不使用通常的格式化语法?
你可以使用它。只需在配置日志记录时指定关键字参数style='{'
。他们没有将其更改为默认值,以便保持向后比较(日志记录模块早于str.format
样式格式化)
括号后面的s是什么意思?
&#34; S&#34;表示使用普通 s 表示。比较&#34; d&#34;对于 d igits。这是printf样式语法。
-8s有什么影响?
左对齐,填充到8宽
>>> '%(foo)-8s' % {'foo': 'hello'}
'hello '
是否可以在其中包含自定义值(例如,标识当前处理的元素类型的ID),或者这必须在消息中?
是的,但是不要试图让stdlib日志记录来做这些事情。直接转到structlog。