nginx - Trunca um campo no log de acesso

1

Existe uma maneira de truncar o conteúdo de um campo armazenado no log de acesso?

Estou interessado em manter apenas os dez primeiros caracteres do User-Agent.

    
por Old Geezer 28.08.2018 / 03:53

1 resposta

1

Primeiro, você introduz uma variável personalizada que contém o agente de usuário truncado. Para isso, use a diretiva map na variável do agente do usuário comum, $http_user_agent . A documentação do módulo do mapa está aqui: link . Em seguida, você configura o formato de registro usando a diretiva log_format , consulte a documentação no link . Finalmente, você diz ao access_log para usar seu formato de log personalizado.

Em resumo:

# ...
http {
    map $http_user_agent $trunc_agent {
        default "";
        "~*(?P<tr>.{0,10}).*" $tr;
    }
    log_format myformat '[other fields] "$trunc_agent"';
    access_log [logfile] myformat;
}
# ...
    
por 28.08.2018 / 05:26

Tags