Python日志YAML格式对齐与文字字符串连接
我正在尝试使用YAML配置格式在Python 3应用程序中设置日志记录格式。然而,我发现自己无法按照我想要的方式格式化它 该格式使用f字符串插值来解释来自记录器的值。我想向这个解释的值添加一个文本字符串,然后对齐并填充它 这是我当前的配置: 这将正确打印消息Python日志YAML格式对齐与文字字符串连接,python,python-3.x,logging,yaml,pyyaml,Python,Python 3.x,Logging,Yaml,Pyyaml,我正在尝试使用YAML配置格式在Python 3应用程序中设置日志记录格式。然而,我发现自己无法按照我想要的方式格式化它 该格式使用f字符串插值来解释来自记录器的值。我想向这个解释的值添加一个文本字符串,然后对齐并填充它 这是我当前的配置: 这将正确打印消息 myfunction(): 但是,将YAML格式化程序更改为相同的格式只会给我带来一大堆错误,而且不起作用 {asctime}{name:PyYAML源中没有字段名(甚至是字段),因此ValueError不是来自错误的YAML源。PyYA
myfunction():
但是,将YAML格式化程序更改为相同的格式只会给我带来一大堆错误,而且不起作用
{asctime}{name:PyYAML源中没有字段名
(甚至是字段
),因此ValueError不是来自错误的YAML源。PyYAML通常会给出更易识别的错误
如果您这样做:
print("<somestuff> {'f{funcName}():':16} <somemessage>".format())
这就是日志模块试图做的。它不会将该字符串解释为f字符串,而是使用format()
在字符串内部,带有适当的参数。这不是问题所在。我的配置文件中正确关闭了它,我只是在将它复制到stackoverflow时出错。我已经修复了它,并添加了我收到的错误,我为我的错误道歉。更新了我的答案。我现在看到了我的误解。但是,我仍然在loss告诉我如何实现我想要的字符串格式,如果可能的话。我曾经做过一个测试,它有一个特殊的格式化程序,允许指定单个字符。我不确定是否可以扩展到允许():
,然后你还需要提供一个特殊的日志格式化程序。(有趣的用例,但我现在没有时间调查)。正如我所想,没有简单的方法可以让它工作。制作自己的格式化程序是一个很好的解决方案,但不幸的是,不值得我花时间来扩大项目规模。我只需要适应当前的格式化,这只是一个小的生活质量问题。谢谢你的帮助。
print("<somestuff> {'f{funcName}():':16} <somemessage>".format())
ValueError: unexpected '{' in field name