Я хочу создавать ежедневные журналы, но есть небольшая проблема. Журналы создаются не на каждый день, а содержат предыдущие файлы журналов. Вот моя текущая настройка, как я могу ее изменить, чтобы она создавала файл журнала только для каждого дня?
Редактирую следующий файл: /etc/logrotate.d/httpd
Я использую панель управления под названием Zadmin, поэтому я включил ее путь к журналу в качестве второго каталога.
Я использую CentOS 6.5 64 бит.
/var/log/httpd/*log /var/sentora/logs/domains/zadmin/*.log {
missingok
rotate 4000000
daily
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
Apache позволяет передавать файлы журналов другой программе, которая затем может обрабатывать ротацию без перезагрузки / перезапуска Apache. Apache даже предоставляет программу для этого.
ErrorLog "|bin/rotatelogs -l -f /var/log/apache2/errlogfile.%Y.%m.%d.log 86400" common
CustomLog "|bin/rotatelogs -l -f /var/log/apache2/logfile.%Y.%m.%d.log 86400" common
Попробуйте бежать logrotate
вручную для поиска ошибок: logrotate -d /etc/logrotate.d/httpd
. В руководстве сказано: «-d Включает режим отладки и подразумевает -v. В режиме отладки не будут внесены изменения в журналы или файл состояния logrotate».
Вот что мы успешно используем:
/var/log/httpd/*log {
daily
dateext
dateformate -%d-%m-%Y
missingok
nocompress
rotate 30
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
Следуя ответу Брайана, я большой поклонник cronolog, который делает в значительной степени именно то, что вы собираетесь:
CustomLog "|/usr/sbin/cronolog /var/log/httpd/%Y/%m/%Y-%m-%d-access.log" combined
ErrorLog "|/usr/sbin/cronolog /var/log/httpd/%Y/%m/%Y-%m-%d-error.log"
yum install cronolog
даст вам хронолог на Cent6.