新的日志记录风格¶
https://blueprints.launchpad.net/sahara/+spec/new-style-logging
根据 https://blueprints.launchpad.net/nova/+spec/log-guidelines 提出的将 Sahara 日志记录重写为统一的 OpenStack 风格
问题描述¶
目前 Sahara 的日志级别和消息混合在一起,不符合 OpenStack 日志记录指南。
提议的变更¶
统一我们的日志系统的好方法是遵循主要指南。以下是日志级别的一个简要描述
调试 (Debug): 显示所有内容,由于生成的日志量巨大,可能不适合正常的生产操作(例如,脚本执行、进程执行等)。
信息 (Info): 通常表示成功的服务启动/停止、版本等非错误相关的数据。这应包括大量已完成的积极工作单元(例如,服务设置、集群启动、成功的作业执行)。
警告 (Warning): 表示可能存在系统性问题;潜在的预测性故障通知(例如,作业执行失败)。
错误 (Error): 发生了错误,管理员应研究该事件(例如,集群启动失败,插件违反操作)。
严重 (Critical): 发生了错误,系统可能不稳定,任何消除 Sahara 预期功能的行为;立即寻求管理员的帮助(例如,无法访问 keystone/数据库,插件加载失败)。
以下是集群执行时 LOG 级别的示例
脚本执行
LOG.debug("running configure.sh script")
集群启动
LOG.info(_LI("Hadoop stack installed successfully."))
作业执行失败
LOG.warning(_LW("Can't run job execution {job} (reason: {reason}")).format(
job = job_execution_id, reason = ex)
无法配置 HDFS
LOG.error(_LE('Configuring HDFS HA failed. {reason}')).format(
reason = result.text)
集群启动失败
LOG.error(_LE('Install command failed. {reason}')).format(
reason = result.text)
我们日志系统的附加步骤应该是使用 pep3101 作为所有日志消息的统一格式。一旦我们尝试使我们的代码更具可读性,请在日志消息中使用{<smthg>} 代替 {0}。
替代方案¶
我们需要遵循 OpenStack 指南,但如果需要,我们可以将插件日志移动到 DEBUG 级别而不是 INFO 级别。应在每个案例中单独讨论。
数据模型影响¶
无
REST API 影响¶
无
其他最终用户影响¶
无
部署者影响¶
无
开发者影响¶
无
Sahara-image-elements impact¶
无
Sahara-dashboard / Horizon 影响¶
无
实现¶
负责人¶
- 主要负责人
starodubcevna
工作项¶
统一现有的日志系统
统一日志消息
如有需要,添加额外的日志
依赖项¶
无
测试¶
无
文档影响¶
无
参考资料¶
https://blueprints.launchpad.net/nova/+spec/log-guidelines https://pythonlang.cn/dev/peps/pep-3101/