oslo.log – user_identity 格式灵活性¶
https://blueprints.launchpad.net/oslo.log/+spec/user-identity-format-flexibility
此蓝图的目标是使调整日志行中 user_identity 字段的格式更容易,而无需指定完整的日志格式字符串。
问题描述¶
我们希望 devstack 使用名称记录身份信息,但默认情况下,我们希望身份信息使用 UUID 值,因为 UUID 值保证是唯一的。
我们不希望 devstack 为各个项目覆盖格式字符串。
我们希望 devstack 能够更改默认格式,而无需指定整个字符串,因为这样会使 devstack 无法了解添加到默认格式字符串中的任何信息。
提议的变更¶
由于 oslo.context 没有使用 oslo.config,并且错误地强制执行格式化,我们希望将此更改应用于 oslo.log。
让 oslo.log 控制日志输出中 user_identity 值的格式。我们必须将该值保留在 oslo.context 中,但不必再使用它了。
添加一个新的配置选项来指定如何格式化 user_identity 字段。(我们将来可能会发现将其应用于其他字段也很有用,但现在让我们专注于一个。)
更新 oslo.log,使其从 oslo.context 请求值,然后使用从其配置选项获取的值以及从 oslo.context 获取的值构建一个字符串来替换 user_identity。
备选方案¶
我们可以要求任何想要自定义日志格式的人员替换整个格式字符串,但这使得仅调整日志消息的整体结构标准化时,调整其一部分变得更加困难。
我们可以将配置选项放在 oslo.context 中,但是该库尚未开始使用 oslo.config,并且不应在其内部嵌入日志格式化逻辑。
Impact on Existing APIs¶
无。为了向后兼容,来自 oslo.context 的 RequestContext 仍然需要提供 user_identity。
安全影响¶
结果不会比以前更安全或更不安全。
性能影响¶
一次额外的格式化调用不应产生很大的性能影响。
Configuration Impact¶
一个新的配置选项,默认设置为产生与我们现在相同的格式。
开发人员影响¶
devstack 的用户最终能够以更友好的格式查看用户身份信息。
Testing Impact¶
没有重大变化。
实现¶
负责人¶
主要负责人:doug-hellmann
其他贡献者:ihrachyshka
里程碑¶
完成目标里程碑:liberty-3
工作项¶
在 oslo.log 中添加一个新的配置选项来控制 user_identity 值的格式化方式;将其默认设置为 oslo.context 当前的方式
在 oslo.context 中添加一个新的方法来提供要放入该格式字符串的身份值(或者直接使用整个 context 字典?字典就可以。)
更新 oslo.log 以构建一个新的字符串并更新从 to_dict() 传递给它的字典
更新 devstack 以设置新的配置选项,以便使用名称而不是或除了 UUID 之外的方式
孵化¶
N/A
文档影响¶
需要记录新的配置选项。
依赖项¶
这与 在格式字符串中提供与应用程序无关的日志参数 相关,但仅依赖于它,因为只有使用 oslo.log 和 oslo.context 的项目才能利用此功能。
参考资料¶
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode