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).
źródło
/usr/bin/rotatelogs
, ponieważ tamrotatelogs
właśnie się znajduje. W przeciwnym razie Apache nie uruchomi się ponownie z powodu błędu.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
źródło
Dokumenty tutaj:
http://httpd.apache.org/docs/2.2/programs/rotatelogs.html
źródło
Spróbuj bezpośrednio z
źródło