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).

Pauk
quelle

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
Radius
quelle
+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

Was Sie wollen, heißt Protokollrotation.

Google scheint einige wichtige Links zu Protokollrotationstools für Windows aufzulisten.

Dies scheint eine Apache-spezifische Lösung zu sein, vielleicht hilft es Ihnen:

http://www.sprint.net.au/~terbut/usefulbox/apachelogrot.htm

Karolis T.
quelle
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
Zaalouni Mohamed
quelle
2
Bitte fügen Sie eine Erklärung hinzu, was dies bewirkt.
Kasperd