Todos os produtos
Search
Central de documentação

Simple Log Service:Modos de extração de campos

Última atualização: Jul 03, 2026

O parâmetro mode define como uma função trata a extração de campos quando o campo já existe ou quando o novo valor está vazio.

Funções relacionadas

A tabela a seguir lista as funções que usam o parâmetro mode e seus valores padrão.

Categoria

Função

Valor padrão de mode

Funções de atribuição de valor

e_set

overwrite

Funções de extração de valor

e_regex

fill-auto

e_json

fill-auto

e_kv

fill-auto

e_csv, e_psv e e_tsv

fill-auto

e_kv_delimit

fill-auto

e_anchor

overwrite

e_syslogrfc

overwrite

Funções de mapeamento e enriquecimento

e_dict_map

fill-auto

e_table_map

fill-auto

Modos de verificação e sobrescrita na extração de campos

A tabela a seguir descreve os valores do parâmetro mode.

Valor

Descrição

fill

Define um novo campo se ele não existir ou se seu valor for uma string vazia.

fill-auto

Define um novo campo se o novo valor não for uma string vazia e uma das seguintes condições for atendida: o campo não existe ou o valor do campo é uma string vazia.

add

Define um novo campo se ele não existir.

add-auto

Define um novo campo se o novo valor não for uma string vazia e o campo não existir.

overwrite

Sempre define um novo campo.

overwrite-auto

Define um novo campo se o novo valor não for uma string vazia.

A tabela a seguir mostra o comportamento das funções nos diferentes modos.

  • Log bruto

    a:         # An empty string
    b: 100
  • Exemplos de transformação

    Modo

    Regra de transformação

    Resultado

    add

    e_set("c", "123", mode='add')

    a:# An empty string
    b: 100
    c: 123

    e_set("c", "", mode='add')

    a:# An empty string
    b: 100
    c:

    e_set("a", "123", mode='add')

    a:# An empty string
    b: 100

    add-auto

    e_set("c", "", mode='add-auto')

    O campo c não é adicionado e o log bruto permanece inalterado.

    fill

    e_set("c", "123", mode='fill')

    a:# An empty string
    b: 100
    c: 123

    e_set("c", "", mode='fill')

    a:# An empty string
    b: 100
    c:

    e_set("a", "123", mode='fill')

    a: 123
    b: 100

    e_set("b", "123", mode='fill')

    O campo b mantém o valor b: 100.

    fill-auto

    e_set("c", "", mode='fill-auto')

    O campo c não é adicionado e o log bruto permanece inalterado.

    overwrite

    e_set("c", "123", mode='overwrite')

    a:# An empty string
    b: 100
    c: 123

    e_set("c", "", mode='overwrite')

    a:# An empty string
    b: 100
    c: 

    e_set("b", "200", mode='overwrite')

    a:# An empty string
    b: 200

    e_set("b", "", mode='overwrite')

    a:# An empty string
    b: 

    overwrite-auto

    e_set("b", "", mode='overwrite-auto')

    O campo b mantém o valor b: 100.

Restrições de nomes de campos para extração

Esta seção aplica-se a funções como e_json, e_kv, e_kv_delimit e e_regex.

Somente campos cujos nomes obedecem às regras de nomenclatura podem ser extraídos. Campos com nomes fora do padrão são descartados. A expressão regular u'_*[\u4e00-\u9fa5\u0800-\u4e00a-zA-Z][\u4e00-\u9fa5\u0800-\u4e00\\w\\.\\-]*' não é suportada. Por exemplo, campos nomeados como 123=abc, __1__:100, 1k=200 ou {"123": "456"} são descartados.

O exemplo a seguir ilustra o funcionamento das restrições padrão de nomes de campos:

  • Log bruto

    data: {"k1": 100, "k2": {"k3": 200, "k4": {"k5": 300} } }
  • Regra de transformação

    e_json(
        "data",
        fmt="parent",
        sep="@",
        prefix="__",
        suffix="__",
        include_node=r"[\u4e00-\u9fa5\u0800-\u4e00a-zA-Z][\w\-\.]*",
        mode="fill-auto",
    )
  • Resultado

    data: {"k1": 100, "k2": {"k3": 200, "k4": {"k5": 300} } }
    data@__k1__:100
    k2@__k3__:200
    k4@__k5__:300