替换格式字符串(proto)

config.core.v3.JsonFormatOptions

[config.core.v3.JsonFormatOptions proto]

与 json_format 一起使用的可选配置选项。

{
  "sort_properties": ...
}
sort_properties

(bool) 输出 JSON 字符串属性将被排序。

config.core.v3.SubstitutionFormatString

[config.core.v3.SubstitutionFormatString proto]

使用多个 命令运算符 以纯文本或 JSON 格式生成新字符串的配置。

{
  "text_format": ...,
  "json_format": {...},
  "text_format_source": {...},
  "omit_empty_values": ...,
  "content_type": ...,
  "formatters": [],
  "json_format_options": {...}
}
text_format

(string) 使用命令运算符指定格式以形成文本字符串。其详细信息在 格式字符串 中描述。

例如,设置 text_format 如下所示:

text_format: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%\n"

生成类似于以下内容的纯文本

upstream connect error:503:path=/foo

已弃用,取而代之的是 text_format_source。要迁移文本格式字符串,请使用 inline_string 字段。

必须设置 text_formatjson_formattext_format_source 中的其中一个。

json_format

(Struct) 使用命令运算符指定格式以形成 JSON 字符串。其详细信息在 格式字典 中描述。值将根据需要呈现为字符串、数字或布尔值。嵌套的 JSON 对象可能由某些命令运算符(例如 FILTER_STATE 或 DYNAMIC_METADATA)生成。有关详细信息,请参阅特定命令运算符的文档。

json_format:
  status: "%RESPONSE_CODE%"
  message: "%LOCAL_REPLY_BODY%"

将创建以下 JSON 对象

{
  "status": 500,
  "message": "My error message"
}

必须设置 text_formatjson_formattext_format_source 中的其中一个。

text_format_source

(config.core.v3.DataSource) 使用命令运算符指定格式以形成文本字符串。其详细信息在 格式字符串 中描述。

例如,设置 text_format 如下所示:

text_format_source:
  inline_string: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%\n"

生成类似于以下内容的纯文本

upstream connect error:503:path=/foo

必须设置 text_formatjson_formattext_format_source 中的其中一个。

omit_empty_values

(bool) 如果设置为 true,则当命令运算符计算为 null 时,

  • 对于 text_format,空运算符的输出从 - 更改为空字符串,以便完全省略空值。

  • 对于 json_format,输出结构中省略了具有空值的键。

content_type

(string) 指定一个 content_type 字段。如果没有设置此字段,则 text/plain 用于 text_formatapplication/json 用于 json_format

content_type: "text/html; charset=UTF-8"
formatters

(repeated config.core.v3.TypedExtensionConfig) 指定可以从访问日志配置中调用的格式化程序插件的集合。有关详细信息,请参阅格式化程序扩展文档。

提示

此扩展类别具有以下已知扩展

json_format_options

(config.core.v3.JsonFormatOptions) 如果使用 json_format,则选项将应用于输出 JSON 字符串。