воскресенье, 17 апреля 2016 г.

Подключаем (включаем) ротацию log файлов на Apache x64 2.4.20 под Windows Server 2008

 

Тут опишу два способа ротации логов.

СПОСОБ РАЗ

1) Качаем модуль ротации от сюда http://www.apachelounge.com/download/ (под вашу разрядность Apache)

AL001

2) Копируем из архива файл mod_log_rotate.so в каталог с модулями Apache (обычно это подкаталог modules)

3) В файл httpd.conf добавляем строку LoadModule log_rotate_module modules/mod_log_rotate.so

4)  В файл httpd.conf добавляем строку RotateLogs On

5)  В файл httpd.conf добавляем строку RotateLogsLocalTime On

6) По желанию добавляем в файл httpd.conf добавляем строку RotateInterval указываем значение в секундах через которое будут создаваться новые файлы логов. По умолчанию используется значение 86400 то есть один день. Если эту строчку не указать, то будет использовано значение по умолчанию. Минимальное значение 60 секунд.

7) В файле httpd.conf изменяем строку создания файла логов доступа. Например на такую: "E:/iLogs/access %Y.%m.%d %B %H-%M-%S.log" combinedio

То же самое проделываете для всех ваших логов доступа (access.log) на виртуальных хостингах. Иначе к их названию просто прилепиться случайное число.

8) Перезапускаем Apache

P.S. mod_log_rotate 1.00a for Apache 2.4 Win64 VC14 работает только для логов доступа. Для логов ошибок он не работает.

СПОСОБ ДВА

При помощи утилиты – rotatelogs.

Rotatelogs - небольшая утилита в составе APACHE, позволяющая осуществлять ротацию логов по времени и по размеру.

rotatelogs [ -l ] [ -f ] logfile rotationtime|filesizeM [ offset ]

-l - Использовать локальное время

-f - Открыть новый файл немедленно, не дожидаясь добавления в него записи

logfile - путь и базовое название лога. Допускается использование модификаторов имени файла (ниже)

rotationtime - время ротации в секундах

filesizeM - максимальный размер лога в мегабайтах

offset - смещение во времени в минтах

Примеры для APACHE под WINDOWS

Внимание!!!! надо указывать либо полный путь к утилите rotatelogs либо отностительный, а так же файлу логов.

CustomLog "|C:/bin/rotatelogs.exe C:/var/logs/logfile 86400" common

CustomLog "|bin/rotatelogs.exe -l C:/var/logs/logfile.%Y.%m.%d 86400" common

CustomLog "|C:/bin/rotatelogs.exe C:/var/logs/logfile 5M" common

ErrorLog "|C:/bin/rotatelogs.exe C:/var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"

Модификаторы названия файла

%A full weekday name (localized)

%a 3-character weekday name (localized)

%B full month name (localized)

%b 3-character month name (localized)

%c date and time (localized)

%d 2-digit day of month

%H 2-digit hour (24 hour clock)

%I 2-digit hour (12 hour clock)

%j 3-digit day of year

%M 2-digit minute

%m 2-digit month

%p am/pm of 12 hour clock (localized)

%S 2-digit second

%U 2-digit week of year (Sunday first day of week)

%W 2-digit week of year (Monday first day of week)

%w 1-digit weekday (Sunday first day of week)

%X time (localized)

%x date (localized)

%Y 4-digit year

%y 2-digit year

%Z time zone name

%% literal `%'

Вторым способом можно ротировать и логи ошибок. Но он не позволить использовать пробелы между модификаторами.

Можно одновременно использовать оба метода. Например первый для логов доступа, а второй для лога ошибок.

Либо же только второй для обоих логов.

Возможно в будущем, первым способом можно будет ротировать и логи ошибок.

P.S. Если время ротации логов задано по умолчанию, то во времени %H%M%S всегда будут нули.

Комментариев нет: