Utiliser rotelogs pour les logs Apache sous Windows

Classé dans : Web | Aucun commentaire

jeudi 01 avril 2010

Voici une astuce pour que Apache crée un fichier log par jour sous Windows.

RotateLogs.exe

Par défaut, lorsque l'on configure la directive CustomLog, Apache va générer un seul fichier de log qui va grossir au fil du temps jusqu'à devenir inexploitable : 

CustomLog E:/logs/<monsite>/access.log combined

Apache sous Windows est pourtant livré avec un utilitaire qui permet de créer des fichiers de logs par période de temps (librement définissable) : rotatelogs.exe .

La syntaxe à utiliser est la suivante :

CustomLog "|C:/<chemin vers apache>/bin/rotatelogs.exe E:/<chemin vers les logs>/<monsite>/access-%Y_%m_%d.log 86400 60" combined

Cet exemple crée des logs journaliers.

Paramètres

Détaillons un peu la ligne de commande :

  • Les chemins vers les fichiers (rotatelogs.exe et fichier de log) doivent utiliser des / et non des \.
  • Il faut apparemment utiliser les chemins abrégés au format 8.3 (si Apache se trouve dans Program Files, par ex)
    Voir ici pour savoir comment afficher les chemins courts.
  • Le fichier de log peut contenir les variables suivantes :
    • %Y : année
    • %m : mois
    • %d : jour
    • %H : heures
    • %M : minutes
    • %S : secondes
  • 86400 représente le temps de secondes en secondes (86400 = 24h * 60 min * 60 sec = 1j)
  • 60 représente le décalage par rapport au temps UTC, en minutes (ici plus 60 s pour l'heure française).
    (vous pouvez vérifier le temps UTC à cette adresse : http://www.worldtimeserver.com/current_time_in_UTC.aspx)
  • On peut également paramétrer rotatelogs pour effectuer une rotation dès que le fichier atteind un certain poids (ex : 5M).