Jak mieć dzienne błędy i dzienniki dostępu na Apache (dla Windows)?

10

Używamy Apache 2.2.9 (Win32) z kilkoma wirtualnymi hostami skonfigurowanymi na jednym serwerze. Każde z nich ma własne ustawienia ErrorLog i CustomLog, które mają format „logs / [nazwa domeny] -error.log” i „logs / [nazwa domeny] -access.log”. Niestety obecnie tworzą one dość duże pliki.

W usługach IIS można określić harmonogram dziennika, który może umieścić je w codziennym formacie „yymmdd.log”. Czy mogę zrobić coś podobnego tutaj?

Nie musi to być codzienne, wystarczy tygodniowe lub miesięczne. Chciałbym je tylko rozbić, abyśmy mogli zachować X zamiast wszystkiego, co kiedykolwiek jest zalogowane. Szybkie Google wydaje się przynosić wiele zorientowanych na Linuksa odpowiedzi obejmujących dzielenie logów, skrypty i zadania CRON, co nie jest zbyt pomocne w przypadku instalacji Windows.

Aktualizacja

Dzięki radius poprawiłem mój httpd-vhosts.conf, aby użyć wbudowanej komendy rotatelogs Apache'a w następującym formacie:

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

Utworzą nowy plik dziennika, gdy bieżący osiągnie 5 MB. Wiem, że nie jest to codzienne żądanie, ale utrzymuje je w rozsądnym rozmiarze, który wystarczy. Próbowałem obracać po tylu sekundach, ale nie wydawało się, aby wstawiał znacznik czasu w nazwie pliku (konkretnie godziny, minuty i sekundy).

Pauk
źródło

Odpowiedzi:

11

To, czego szukasz, to program rotatelogs dostarczany z Apache http://httpd.apache.org/docs/2.2/programs/rotatelogs.html

Na przykład, aby obracać dzienniki codziennie o północy:

CustomLog "|bin/rotatelogs -f /var/log/apache2/logfile.%Y.%m.%d.log 86400" common
promień
źródło
+1, nie wiedziałem, że Apache ma własne rozwiązanie.
Karolis T.
Każdy, kto korzysta z Ubuntu, może potrzebować zmienić ścieżkę do /usr/bin/rotatelogs, ponieważ tam rotatelogswłaśnie się znajduje. W przeciwnym razie Apache nie uruchomi się ponownie z powodu błędu.
BadHorsie,
0

To, co chcesz, nazywa się rotacją logów.

Wydaje się, że Google wymienia kilka rewelacyjnych linków na temat narzędzi do obracania dzienników w systemie Windows.

To wydaje się być rozwiązaniem specyficznym dla Apache, może pomoże ci:

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

Karolis T.
źródło
0

Spróbuj bezpośrednio z

CustomLog "|C:/<chemin vers apache>/bin/rotatelogs.exe E:/<chemin vers les logs>/<monsite>/access-%Y_%m_%d.log 86400 60" combined
Zaalouni Mohamed
źródło
2
Dodaj wyjaśnienie tego, co to robi.
kasperd