¿Cómo tener errores diarios y registros de acceso en Apache (para Windows)?

10

Estamos ejecutando Apache 2.2.9 (Win32) con algunos hosts virtuales configurados en un servidor. Cada uno tiene su propia configuración de ErrorLog y CustomLog en el formato de "logs / [nombre de dominio] -error.log" y "logs / [nombre de dominio] -access.log". Desafortunadamente, estos ahora están creando archivos bastante grandes.

En IIS puede especificar la programación de registro, que puede ponerlos en un formato diario de "aammdd.log". ¿Hay algo similar que pueda hacer aquí?

No tiene que ser diario, semanal o mensual. Solo me gustaría dividirlos para que podamos mantener la cantidad X en lugar de todo lo que se haya registrado. Un Google rápido parece traer muchas respuestas orientadas a Linux que involucran divisores de registro, scripts y trabajos cron que no son demasiado útiles para una instalación de Windows.

Actualizar

Gracias a radius, modifiqué mi httpd-vhosts.conf para usar el comando incorporado rotatelogs de Apache , en el siguiente formato:

ErrorLog "|bin/rotatelogs logs/[domain name]-error.%Y-%m-%d-%H_%M_%S.log 5M" CustomLog "|bin/rotatelogs logs/[domain name]-access.%Y-%m-%d-%H_%M_%S.log 5M" common

Crearán un nuevo archivo de registro cuando el actual alcance los 5 MB. Sé que no es diario como se solicitó, pero eso los mantiene en un tamaño manejable, lo que servirá. Intenté rotar después de tantos segundos, pero no parecía estar poniendo la marca de tiempo en el nombre del archivo correctamente (específicamente horas, minutos y segundos).

Pauk
fuente

Respuestas:

11

Lo que está buscando es el programa rotatelogs que viene con apache http://httpd.apache.org/docs/2.2/programs/rotatelogs.html

Por ejemplo, para rotar sus registros diariamente a medianoche:

CustomLog "|bin/rotatelogs -f /var/log/apache2/logfile.%Y.%m.%d.log 86400" common
radio
fuente
+1, no sabía que Apache tenía una solución propia.
Karolis T.
Para cualquiera que use Ubuntu, es posible que deba cambiar la ruta /usr/bin/rotatelogs, ya que es donde rotatelogsse encuentra. De lo contrario, Apache no se reiniciará debido a un error.
BadHorsie
0

Intenta directamente con

CustomLog "|C:/<chemin vers apache>/bin/rotatelogs.exe E:/<chemin vers les logs>/<monsite>/access-%Y_%m_%d.log 86400 60" combined
Zaalouni Mohamed
fuente
2
Por favor agregue una explicación de lo que esto hace.
kasperd