DesarrolloLibre

Desarrollo Web, Android, juegos y mucho más

Categorias
14-08-2013

¿Qué son los logs?

Los logs de las aplicaciones son registros generados por las aplicaciones en base a una serie de eventos registrados en un tiempo particular; son empleados para registrar datos como:

Entre otros parámetros; los logs son herramientas importantes para detectar posibles problemas, errores, bug en la aplicación.

Los logs en Apache

Los logs de Apache pueden configurarse fácilmente utilizando la directiva CustomLog dentro del VirtualHost utilizando la siguiente sintaxis:

CustomLog <ruta>/<archivo>.<extensión> formato

En donde:

En donde cada uno de los "format string" significa:

Format String Description
%h Es el host que accede al servicor.
%l Es el protocolo de identificación del usuario RFC 1413.
%u Es el nombre del usuario (comúnmente la salida será un guión a no ser que se trate de un usuario autenticado en el sistema).
%t Es la fecha incluyendo hora y UTC.
%r Es la solicitud realizada por el usuario.
%>s Es el código de respuesta de estado del protocolo HTTP.
%{Referer}i Es la URI de referencia al recurso.
%{User-agent}i Es el user-agent del usuario.

La tabla de parámetros basada en la documentación oficial de Apache; mencionando algunos de los "Format String" más utilizados:

Format String Description
%% Es el signo de porcentaje.
%a Es la dirección IP remota.
%A Es la dirección IP local.
%B Es el Tamaño del "response" (respuesta) en bytes incluyendo la cabecera HTTP.
%b Es el Tamaño del "response" (respuesta) en bytes incluyendo la cabecera HTTP, en formato CLF.
%{VARNAME}C Es el contenido de la cookie en el request (petición) enviada al servidor.
%D Es el tiempo tomado por el servidor en dar una respuesta.
%{VARNAME}e Nos da el contenido de la variable.
%f Es el nombre del archivo.
%h Es el Host Remoto.
%H Es el protocolo.
%k Es el numero de "keepalive" manejadas en la conexion.
%m Es el método de petición.
%p Es el puerto canónico del servidor de servicio de la petición.
%q Es el query string.
%u Es el nombre del usuario.
%U Es la URL de petición, no incluye ningún query string.

Además podemos crear un formato de log personalizado utilizando la directiva "LogFormat"; como veremos en la siguiente sección.

Múltiples logs de acceso en Apache

Apache permite manejar múltiples logs de accesos; para crear un log desde Apache basta con especificar tantas directivas CustomLog como logs se deseen.

Creando un log con la directiva CustomLog en Apache

Por ejemplo, las siguientes directivas crean tres logs de accesos.

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
CustomLog logs/referer_log "%{Referer}i -> %U"
CustomLog logs/agent_log "%{User-agent}i"

Los logs de Condiciones en Apache

Puede resultar conveniente excluir información de los logs; esto lo podemos hacer fácilmente utilizando variables de entorno (environment variables). primero debemos setear la variable de entorno para indicar que la solicitud cumple con ciertas condiciones; Esto se logra generalmente con SetEnvIf. Entonces la cláusula env= de la directiva CustomLog; se usa para incluir o excluir las solicitudes que se establece la variable de entorno.

Ejemplo de logs de Condiciones en Apache

SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
SetEnvIf Request_URI "^/robots\.txt$" dontlog
CustomLog logs/access_log common env=!dontlog

Otro ejemplo consiste en mandar a un log diferente las peticiones de los que "hablan inglés" a un archivo diferente.

SetEnvIf Accept-Language "en" english
CustomLog logs/english_log common env=english
CustomLog logs/non_english_log common env=!english

Puedes aprender más visitando la socumetnación oficial de Apache en la siguiente páginaArticulo original: http://httpd.apache.org/docs/1.3/logs.html


Publicidad

Give me for a beer!

Algunos artículos que te pueden interesar

Apache modulo mod_rewrite

Apache modulo mod_rewrite

MOD_REWRITE es un módulo del servidor Apache que permite crear URL alternativas a las URL dinámicas generadas por la forma en que están programadas nuestras aplicaciones web; de forma tal que sean más fáciles de recordar.

Andrés Cruz 25-07-2013

Configurando Apache para que soporte SSL

Configurando Apache para que soporte SSL

Se explicará los pasos a realizar para crear un certificado SSL (clave privada y pública) y acceder de manera segura mediante HTTPS con el módulo mod_ssl de Apache

Andrés Cruz 21-04-2016

Como crear logs personalizados en Apache

Como crear logs personalizados en Apache

Los logs de Apache pueden configurarse fácilmente utilizando la directiva CustomLog dentro del VirtualHost.

Andrés Cruz 14-08-2013