Log#
O módulo escreve logs de requisição no formato especificado.
Os logs são escritos no contexto de um Padrão http, server, location, if in location, limit_except Define o path, format e configurações de escrita em buffer para o log. Múltiplos logs podem ser usados no mesmo nível de configuração. O log para syslog é configurado especificando o prefixo "syslog:" no primeiro parâmetro. O valor especial off cancela todas as diretivas access_log para o nível atual. Se nenhum formato for especificado, o formato predefinido "combined" é usado. Se o tamanho do buffer for especificado usando o parâmetro Aviso O tamanho do buffer não deve exceder o tamanho de uma escrita atômica em um arquivo de disco. Para FreeBSD este tamanho é ilimitado. Quando o buffer está habilitado, os dados são escritos no arquivo: se a próxima linha de log não couber no buffer; se os dados no buffer estiveram lá por mais tempo que o intervalo de tempo especificado pelo parâmetro flush; ao reabrir o arquivo de log ou terminar o processo worker. Se o parâmetro Exemplo: Nota Para suporte à compressão gzip de logs, o Angie deve ser compilado com a biblioteca zlib. Variáveis podem ser usadas no caminho do arquivo, mas tais logs têm algumas limitações: o usuário sob cujas credenciais os processos worker executam deve ter permissões para criar arquivos no diretório com tais logs; o buffer não funciona; o arquivo é aberto para cada escrita de log e fechado imediatamente após a escrita. No entanto, como descritores de arquivos frequentemente usados podem ser armazenados em cache, durante a rotação de logs dentro do tempo especificado pelo parâmetro valid da diretiva open_log_file_cache, a escrita pode continuar no arquivo antigo. para cada escrita de log, a existência do diretório raiz para a requisição é verificada — se este diretório não existir, o log não é criado. Portanto root e access_log devem ser descritos no mesmo nível de configuração: O parâmetro Padrão http Especifica o formato do log. O parâmetro Ao usar Ao usar Linhas de cabeçalho enviadas ao cliente começam com o prefixo O formato predefinido Padrão http, server, location Define um cache que armazena descritores de arquivo de logs frequentemente usados cujos nomes são especificados usando variáveis. Parâmetros: Define o número máximo de descritores no cache; quando o cache transborda, os descritores menos recentemente usados (LRU) são fechados. Define o tempo após o qual um descritor em cache é fechado se não foi acessado durante este tempo.
O padrão é 10 segundos. Define o número mínimo de usos do arquivo durante o tempo especificado pelo parâmetro Especifica após que tempo verificar se o arquivo ainda existe sob o mesmo nome.
O padrão é 60 segundos. Desabilita o cache. Exemplo de uso:location
onde o processamento termina. Este pode ser um location
diferente do original se um redirecionamento interno ocorrer durante o processamento da requisição.Exemplo de Configuração#
log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';
access_log /spool/logs/angie-access.log compression buffer=32k;
Diretivas#
access_log#
access_log
path [format [buffer=
size] [gzip=
level]] [flush=
time] [if=
condition];access_log
off
;access_log logs/access.log combined;
(o caminho depende do parâmetro de compilação --http-log-path
)buffer
ou o parâmetro gzip
for especificado, a escrita será feita em buffer.gzip
for especificado, o buffer será comprimido antes de escrever no arquivo. O nível de compressão pode ser definido no intervalo de 1 (mais rápido, mas pior compressão) a 9 (mais lento, mas melhor compressão). Por padrão, um tamanho de buffer de 64K bytes e nível de compressão 1 são usados. Os dados são comprimidos em blocos atômicos, e a qualquer momento o arquivo de log pode ser descomprimido ou lido usando o utilitário zcat.access_log /path/to/log.gz combined gzip flush=5m;
server {
root /spool/vhost/data/$host;
access_log /spool/vhost/logs/$host;
...
if
habilita o log condicional. Uma requisição não será logada se o resultado da avaliação da condição for "0"
ou uma string vazia. No exemplo a seguir, requisições com códigos de resposta 2xx e 3xx não serão logadas:map $status $loggable {
~^[23] 0;
default 1;
}
access_log /path/to/access.log combined if=$loggable;
log_format#
log_format
name [escape
=:samp:default | json
| none
] string ...;log_format combined "...";
escape
permite definir o escape de caracteres para json
ou
default
em variáveis; por padrão default
é usado.
O valor none
desabilita o escape de caracteres.default
, caracteres """, "\", e caracteres com
valores menores que 32 ou maiores que 126 são escapados como "\xXX". Se o
valor da variável não for encontrado, um hífen "-" será escrito no log como o valor.json
, todos os caracteres não permitidos em strings JSON
são escapados: caracteres """ e "\" são escapados como "\"" e "\\", caracteres com
valores menores que 32 são escapados como "\n", "\r", "\t", "\b", "\f", ou
"\u00XX".sent_http_
,
por exemplo, $sent_http_content_range
.combined
sempre existe na configuração:log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
open_log_file_cache#
open_log_file_cache
max=
N [inactive=
time] [min_uses=
N] [valid=
time];open_log_file_cache
off
;open_log_file_cache off;
max
inactive
min_uses
inactive
, após o qual o descritor de arquivo permanecerá aberto no cache.
O padrão é 1.valid
off
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;