Establecer el formato del log de accesos en Apache

El log de accesos o requests de Apache registra todas las peticiones que el servidor web, o bien, el VirtualHost recibe.

El formato de cada registro hace uso de un conjunto de identificadores que se reemplazan por los datos de la petición a la hora de registrarla. En el sitio de Apache, pueden consultar los identificadores de formato definidos para la versión 2.2.

Directiva LogFormat

Estos formatos pueden definirse mediante la directiva LogFormat, y asociarse a un nombre:

LogFormat <STRING-FORMATO> [<NOMBRE-FORMATO>]

donde:

  • STRING-FORMATO es una cadena de caracteres entre comillas dobles (“) que contiene los identificadores de formato deseados
  • (opcional) NOMBRE-FORMATO es el nombre al cual se asocia el formato detallado previamente

Si se especifica el NOMBRE-FORMATO lo único que sucede es que el formato definido se asocia a ese nombre.

Ejemplo:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

Directiva TransferLog

La directiva TransferLog utiliza el formato definido por el último LogFormat que no especifique un NOMBRE-FORMATO (en ese caso también se puede usar un NOMBRE-FORMATO en lugar del STRING-FORMATO para referirse a uno definido previamente).

Ejemplo:

LogFormat combined

TransferLog logs/www-access_log

Si no hubiera ninguno definido, toma por defecto el Common Log Format (CLF):

"%h %l %u %t \"%r\" %>s %b"

Directiva CustomLog

Si queremos generar diferentes logs, cada uno con su formato, debemos hacer uso de la directiva CustomLog:

CustomLog <ARCHIVO> <STRING-FORMATO>|<NOMBRE-FORMATO>

donde:

  • ARCHIVO indica el archivo físico donde se registrarán las peticiones, el cual debe ser relativo a la ubicación definida en la directiva ServerRoot (por defecto, el directorio donde instalamos Apache)

Ejemplo:

CustomLog logs/www-access_log common

o bien

CustomLog logs/www-access_log "%h %l %u %t \"%r\" %>s %b"

Tagged with: , , ,
Publicado en Aplicaciones