Log#

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

Configuration Example#

log_format basic '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time';

access_log /spool/logs/angie-access.log basic buffer=32k;

Directives#

access_log#

Syntax

access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

access_log off;

Predeterminado

access_log off;

Context

stream, server

Establece la ruta, el formato y la configuración para una escritura de registro en búfer. Se pueden especificar varios registros en el mismo nivel de configuración. El registro en syslog se puede configurar especificando el prefijo "syslog:" en el primer parámetro. El valor especial off cancela todas las directivas access_log en el nivel actual.

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

Advertencia

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 el intervalo de tiempo especificado por el parámetro flush;

  • cuando un proceso de trabajo está reabriendo archivos de registro o se está cerrando.

Si se utiliza el parámetro gzip, el búfer se comprime antes de escribir en el archivo. El nivel de compresión puede establecerse entre 1 (más rápido, menos compresión) y 9 (más lento, mejor compresión). Por defecto, se utiliza un tamaño de búfer de 64K bytes y un nivel de compresión 1. Los datos se comprimen en bloques atómicos, y en cualquier momento el archivo de registro puede descomprimirse o leerse mediante la utilidad "zcat".

Ejemplo:

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

Nota

Para el soporte de compresión gzip, Angie debe compilarse con la biblioteca zlib.

Se pueden usar variables en la ruta del archivo, pero estos registros tienen algunas restricciones:

  • el usuario cuyas credenciales utilizan los procesos de trabajo debe tener permisos para crear archivos en un directorio con dichos registros;

  • el almacenamiento en búfer no funciona;

  • el archivo se abre para cada escritura de registro y se cierra inmediatamente después de escribir. Sin embargo, dado que los descriptores de archivos utilizados con frecuencia pueden almacenarse en una caché, la escritura puede continuar en el archivo antiguo durante la rotación de registros durante el tiempo especificado por el parámetro valid de la directiva open_log_file_cache.

El parámetro if habilita el registro condicional. Una sesión no se registrará si la condición se evalúa como "0" o una cadena vacía.

log_format#

Syntax

log_format name [escape=default | json | none] string ...;

Predeterminado

Context

stream

Especifica el formato de registro, por ejemplo:

log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

El parámetro escape permite establecer el escape de caracteres json o default en variables; por defecto, se utiliza default. El valor none desactiva el escape de caracteres.

Cuando se usa default, los caracteres """, "\", y los caracteres con valores menores que 32 o mayores que 126 se escapan como "\xXX". Si no se encuentra el valor de la variable, se registrará un guion "-".

Cuando se usa json, todos los caracteres no permitidos en cadenas JSON se escapan: los caracteres """ y "\" se escapan como "\"" y "\\", los caracteres con valores menores que 32 se escapan como "\n", "\r", "\t", "\b", "\f", o "\u00XX".

open_log_file_cache#

Sintaxis

open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];

open_log_file_cache off;

Predeterminado

open_log_file_cache off;

Contexto

stream, server

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

max

Establece el número máximo de descriptores en la caché; cuando la caché se desborda, se cierran los descriptores menos utilizados recientemente (LRU).

inactive

Establece el tiempo después del cual se cierra un descriptor en caché si no hubo accesos durante este tiempo; por defecto, 10 segundos.

min_uses

Establece el número mínimo de usos del archivo durante el tiempo definido por el parámetro inactive para que el descriptor permanezca abierto en la caché; por defecto, 1.

valid

Establece el tiempo después del cual se debe comprobar que el archivo todavía existe con el mismo nombre; por defecto, 60 segundos.

off

Desactiva el almacenamiento en caché.

Ejemplo de uso:

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