Назад | Перейти на главную страницу

Как вести ежедневные журналы ошибок и доступа в Apache (для Windows)?

Мы запускаем Apache 2.2.9 (Win32) с несколькими виртуальными хостами, настроенными на одном сервере. У каждого есть свои собственные настройки ErrorLog и CustomLog, которые имеют формат «logs / [имя домена] -error.log» и «logs / [имя домена] -access.log». К сожалению, сейчас они создают довольно большие файлы.

В IIS вы можете указать расписание журналов, которое может помещать их в ежедневный формат «yymmdd.log». Я могу сделать что-то подобное?

Это не обязательно должно быть ежедневно, достаточно будет еженедельно или ежемесячно. Я просто хотел бы разбить их, чтобы мы могли хранить X сумму вместо всего, что она когда-либо регистрировалась. Быстрый Google, кажется, дает много ориентированных на Linux ответов, включая разделители журналов, сценарии и задания cron, что не слишком полезно для установки Windows.

Обновить

Благодаря радиусу я настроил свой httpd-vhosts.conf использовать встроенный в Apache ротация журналов команда в следующем формате:

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

Они создадут новый файл журнала, когда текущий достигнет 5 МБ. Я знаю, что это не каждый день, как просили, но это позволяет держать их в приемлемом размере, и этого достаточно. Я попробовал повернуть через столько секунд, но, похоже, не удалось правильно поставить отметку времени в имени файла (особенно часы, минуты и секунды).

Вам нужна программа rotatelogs, которая поставляется с apache. http://httpd.apache.org/docs/2.2/programs/rotatelogs.html

Например, чтобы ежедневно менять журналы в полночь:

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

То, что вы хотите, называется ротацией журналов.

Google, кажется, перечисляет несколько интересных ссылок об инструментах ротации журналов для Windows.

Это похоже на конкретное решение Apache, возможно, оно вам поможет:

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

Попробуйте напрямую с

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