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

10

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

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

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

Обновить

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

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 МБ. Я знаю, что это не каждый день, как просили, но это позволяет им иметь приемлемый размер, который подойдет. Я попытался повернуть через столько секунд, но, похоже, метка времени в названии файла не помещалась правильно (в частности, часы, минуты и секунды).

Pauk
источник

Ответы:

11

То, что вы ищете, это программа 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
радиус
источник
+1, не знал, что у Apache есть собственное решение.
Каролис Т.
Для тех, кто использует Ubuntu, вам может понадобиться изменить путь /usr/bin/rotatelogs, так как именно там rotatelogsнаходится. В противном случае Apache не сможет перезапуститься из-за ошибки.
BadHorsie
0

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

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

Это похоже на специфичное для Apache решение, может быть, оно поможет вам:

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

Каролис Т.
источник
0

Попробуй прямо с

CustomLog "|C:/<chemin vers apache>/bin/rotatelogs.exe E:/<chemin vers les logs>/<monsite>/access-%Y_%m_%d.log 86400 60" combined
Заалуни Мохамед
источник
2
Пожалуйста, добавьте объяснение того, что это делает.
Касперд