为 Heat 添加日志翻译提示

https://blueprints.launchpad.net/Heat/+spec/log-translation-hints

为了更新 Heat 日志消息,以便利用 oslo 的新特性,即使用不同的翻译域来翻译日志消息。

问题描述

当前的 oslo 库支持使用不同的翻译域来翻译日志消息,并且 oslo 希望在 juno 版本结束前,我们的所有代码中都包含这些提示。因此 Heat 应该在整个发布周期内处理这些更改。

提议的变更

由于需要更改的文件太多,因此将此 bp 分解为数十个补丁,按照 Heat 目录(需要应用此更改)进行划分。

对于每个目录的文件,我们将所有日志消息更改如下。

  1. 将 “LOG.error(_(” 更改为 “LOG.error(_LE”。

  2. 将 “LOG.warn(_(” 更改为 “LOG.warn(_LW(“。

  3. 将 “LOG.info(_(” 更改为 “LOG.info(_LI(“。

  4. 将 “LOG.critical(_(” 更改为 “LOG.critical(_LC(“。

请注意,此规范和相关的蓝图并非旨在解决删除调试消息翻译的问题。

备选方案

实现

负责人

主要负责人

liusheng<liusheng@huawei.com>

里程碑

完成目标里程碑

Juno-3

工作项

对于每个目录的文件,我们将所有日志消息更改如下。

  1. 将 “LOG.error(_(” 更改为 “LOG.error(_LE”。

  2. 将 “LOG.warn(_(” 更改为 “LOG.warn(_LW(“。

  3. 将 “LOG.info(_(” 更改为 “LOG.info(_LI(“。

  4. 将 “LOG.critical(_(” 更改为 “LOG.critical(_LC(“。

我们按照以下顺序处理这些更改

├── contrib           #TODO1
├── heat
│   ├── api        #TODO2
│   ├── cloudinit  #TODO3
│   ├── cmd
│   ├── common     #TODO4
│   ├── db         #TODO5
│   ├── doc
│   ├── engine     #TODO6
│   ├── locale
│   ├── openstack  #TODO7
│   ├── rpc        #TODO8
│   ├── scaling    #TODO9
│   ├── tests      #TODO10

添加一个 HACKING 检查规则,以确保日志消息与相对域相关。使用正则表达式检查日志消息是否包含相对的 _L* 函数。

log_translation_domain_info =re.compile(
    r"(.)*LOG\.info\(\s*_LI\(('|\")")
log_translation_domain_warning = re.compile(
    r"(.)*LOG\.(warn|warning)\(\s*_LW\(('|\")")
log_translation_domain_error = re.compile(
    r"(.)*LOG\.error\(\s*_LE\(('|\")")
log_translation_domain_critical = re.compile(
    r"(.)*LOG\.critical\(\s*_LC\(('|\")")

依赖项

[1]https://blueprints.launchpad.net/oslo/+spec/log-messages-translation-domain-rollout

[2]https://wiki.openstack.org/wiki/LoggingStandards