Wie bekomme ich tägliche Fehler- und Zugriffsprotokolle auf Apache (für Windows)?


10

Wir führen Apache 2.2.9 (Win32) mit einigen virtuellen Hosts aus, die auf einem Server konfiguriert sind. Jedes hat seine eigenen ErrorLog- und CustomLog-Einstellungen im Format "logs / [Domänenname] -error.log" und "logs / [Domänenname] -access.log". Leider erstellen diese jetzt ziemlich große Dateien.

In IIS können Sie den Protokollzeitplan angeben, der sie in das tägliche Format "yymmdd.log" bringen kann. Kann ich hier etwas Ähnliches tun?

Es muss weder täglich noch wöchentlich oder monatlich sein. Ich möchte sie nur aufteilen, damit wir den X-Betrag behalten können, anstatt alles, was jemals protokolliert wurde. Ein schnelles Google scheint viele Linux-orientierte Antworten mit Protokollsplittern, Skripten und Cron-Jobs zu liefern, was für eine Windows-Installation nicht allzu hilfreich ist.

Aktualisieren

Dank des Radius habe ich meine httpd-vhosts.conf so angepasst , dass der in Apache integrierte Befehl rotatelogs im folgenden Format verwendet wird:

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

Sie erstellen eine neue Protokolldatei, wenn die aktuelle 5 MB erreicht. Ich weiß, dass das nicht täglich ist, wie gewünscht, aber das hält sie auf einer überschaubaren Größe, die ausreicht. Ich habe versucht, nach so vielen Sekunden zu drehen, aber es schien nicht, dass der Zeitstempel korrekt in den Dateinamen eingefügt wurde (insbesondere Stunden, Minuten und Sekunden).

Antworten:


11

Was Sie suchen, ist das Rotatelogs-Programm, das mit Apache http://httpd.apache.org/docs/2.2/programs/rotatelogs.html geliefert wird

Zum Beispiel, um Ihre Protokolle täglich um Mitternacht zu drehen:

CustomLog "|bin/rotatelogs -f /var/log/apache2/logfile.%Y.%m.%d.log 86400" common

+1, wusste nicht, dass Apache eine eigene Lösung hat.
Karolis T.

Für alle, die Ubuntu verwenden, müssen Sie möglicherweise den Pfad ändern /usr/bin/rotatelogs, da sich dort der Pfad rotatelogsbefindet. Andernfalls kann Apache aufgrund eines Fehlers nicht neu gestartet werden.
BadHorsie



0

Versuchen Sie es direkt mit

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

2
Bitte fügen Sie eine Erklärung hinzu, was dies bewirkt.
Kasperd
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.