• Configuración de ejemplo
  • Directivas
  • access_log
  • log_format
  • open_log_file_cache

los ngx_http_log_module El módulo escribe registros de solicitudes en el formato especificado.

Las solicitudes se registran en el contexto de una ubicación donde finaliza el procesamiento. Puede ser diferente de la ubicación original, si un redireccionamiento interno ocurre durante el procesamiento de la solicitud.

Configuración de ejemplo

log_format compression '$remote_addr - $remote_user [$time_local] ''"$request" $status$bytes_sent ''"$http_referer" "$http_user_agent" "$gzip_ratio"';access_log /spool/logs/nginx-access.log compression buffer=32k;

Directivas

Sintaxis: access_logpath
[format
[buffer=size]
[gzip[=level]]
[flush=time]
[if=condition]];

access_log off;
Defecto: access_log logs/access.log combined;
Contexto: http, server, location, if in location, limit_except

Establece la ruta, el formato y la configuración para una escritura de registro almacenada en búfer. Se pueden especificar varios registros en el mismo nivel de configuración. El registro en syslog se puede configurar especificando el “syslog:” prefix en el primer parámetro. El valor especial off cancela todo access_log Directivas en el nivel actual. Si no se especifica el formato, el “combinedSe utiliza el formato ”.

Si el buffer o gzip (1.3.10, 1.2.7) se utiliza el parámetro, las escrituras en el registro se almacenarán en búfer.

El tamaño del búfer no debe exceder el tamaño de una escritura atómica en un archivo de disco. Para FreeBSD, este tamaño es ilimitado.

Cuando el almacenamiento en búfer está habilitado, los datos se escribirán en el archivo:

  • si la siguiente línea de registro no cabe en el búfer;
  • si los datos almacenados en búfer son más antiguos que los especificados por el flush parámetro (1.3.10, 1.2.7);
  • cuando un proceso de trabajo vuelve a abrir archivos de registro o se cierra.

Si el gzip se utiliza el parámetro, los datos almacenados en búfer se comprimirán antes de escribir en el archivo. El nivel de compresión se puede establecer entre 1 (más rápido, menos compresión) y 9 (más lento, mejor compresión). De forma predeterminada, el tamaño del búfer es igual a 64 K bytes y el nivel de compresión se establece en 1. Dado que los datos se comprimen en bloques atómicos, el archivo de registro se puede descomprimir o leer mediante “zcat” en cualquier momento.

Ejemplo:

access_log /path/to/log.gz combined gzip flush=5m;

Para que funcione la compresión gzip, nginx debe construirse con la biblioteca zlib.

La ruta del archivo puede contener variables (0.7.6+), pero tales registros tienen algunas restricciones:

  • el usuario cuyas credenciales son utilizadas por los procesos de trabajo debe tener permisos para crear archivos en un directorio con dichos registros;
  • las escrituras almacenadas en búfer no funcionan;
  • el archivo se abre y se cierra para cada escritura de registro. Sin embargo, dado que los descriptores de los archivos de uso frecuente se pueden almacenar en una caché, la escritura en el archivo antiguo puede continuar durante el tiempo especificado por la directiva open_log_file_cache valid parámetro
  • durante cada registro escriba la existencia de la solicitud directorio raíz está marcado, y si no existe, no se crea el registro. Por tanto, es una buena idea especificar tanto raíz y access_log en el mismo nivel de configuración:
    server{root       /spool/vhost/data/$host;access_log /spool/vhost/logs/$host;
        ...
    

los if El parámetro (1.7.0) habilita el registro condicional. No se registrará una solicitud si el condition evalúa a “0” o un vacío string. En el siguiente ejemplo, las solicitudes con códigos de respuesta 2xx y 3xx no se registrarán:

map$status$loggable
    ~^[23]  0;default1;access_log /path/to/access.log combined if=$loggable;
Sintaxis: log_formatname
[escape=default|json|none]
string ...;
Defecto: log_format combined "...";
Contexto: http

Especifica el formato de registro.

los escape El parámetro (1.11.8) permite configurar json o default caracteres que se escapan en variables, por defecto, default se utiliza escapar. los none El valor (1.13.10) desactiva el escape.

Para default escapar, personajes “"“,”“, Y otros caracteres con valores inferiores a 32 (0,7.0) o superiores a 126 (1.1.6) se escapan como”xXX”. Si no se encuentra el valor de la variable, un guión (“-”) Se registrará.

Para json escapar, todos los caracteres no están permitidos en JSON instrumentos de cuerda se escapará: caracteres “"” y ““Se escapan como”"” y “\“, Los caracteres con valores inferiores a 32 se escapan como”n“,”r“,”t“,”b“,”f“, o “u00XX”.

El formato de registro puede contener variables comunes y variables que existen solo en el momento de escribir un registro:

$bytes_sent
la cantidad de bytes enviados a un cliente
$connection
número de serie de conexión
$connection_requests
el número actual de solicitudes realizadas a través de una conexión (1.1.18)
$msec
tiempo en segundos con una resolución de milisegundos en el momento de la escritura del registro
$pipe
p“Si la solicitud se canalizó”,.” de lo contrario
$request_length
longitud de la solicitud (incluida la línea de solicitud, el encabezado y el cuerpo de la solicitud)
$request_time
solicitar tiempo de procesamiento en segundos con una resolución de milisegundos; tiempo transcurrido entre los primeros bytes que se leyeron del cliente y la escritura del registro después de que se enviaron los últimos bytes al cliente
$status
estado de respuesta
$time_iso8601
hora local en el formato estándar ISO 8601
$time_local
hora local en el formato de registro común

En las variables de las versiones modernas de nginx $ estado (1.3.2, 1.2.2), $ bytes_sent (1.3.8, 1.2.5), $ conexión (1.3.8, 1.2.5), $ connection_requests (1.3.8, 1.2.5), $ mseg (1.3.9, 1.2.6), $ request_time (1.3.9, 1.2.6), $ pipe (1.3.12, 1.2.7), $ request_length (1.3.12, 1.2.7), $ time_iso8601 (1.3.12, 1.2.7) y $ time_local (1.3.12, 1.2.7) también están disponibles como variables comunes.

Las líneas de encabezado enviadas a un cliente tienen la prefix “sent_http_“, por ejemplo, $sent_http_content_range.

La configuración siempre incluye el predefinido “combined” formato:

log_format combined '$remote_addr - $remote_user [$time_local] ''"$request" $status$body_bytes_sent ''"$http_referer" "$http_user_agent"';
Sintaxis: open_log_file_cache
max=N
[inactive=time]
[min_uses=N]
[valid=time];

open_log_file_cache off;
Defecto: open_log_file_cache off;
Contexto: http, server, location

Define una caché que almacena los descriptores de archivo de los registros de uso frecuente cuyos nombres contienen variables. La directiva tiene los siguientes parámetros:

max
establece el número máximo de descriptores en una caché; si la caché se llena, los descriptores de uso menos reciente (LRU) se cierran
inactive
establece el tiempo después del cual se cierra el descriptor en caché si no hubo acceso durante este tiempo; por defecto, 10 segundos
min_uses
establece el número mínimo de usos de archivos durante el tiempo definido por el inactive parámetro para permitir que el descriptor permanezca abierto en una caché; por defecto, 1
valid
establece el tiempo después del cual se debe verificar que el archivo todavía existe con el mismo nombre; por defecto, 60 segundos
off
deshabilita el almacenamiento en caché

Ejemplo de uso:

open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;