Я хотел бы решить мою проблему, когда у меня есть сотни доменов на сервере Apache. Мне не нужен отдельный файл журнала для каждого домена, я хочу, чтобы они делились файлом журнала. Это достаточно просто, если мне не нужно их вращать. Например, я могу использовать
CustomLog "/var/log/apache2/access_log" "%h %v %l %u %t \"%r\" %>s %b"
ErrorLog "/var/log/apache2/error_log"
Это работает нормально, но я использовал это и заметил, что мой файл журнала 6 ГБ. Поэтому я хочу, чтобы файлы журналов чередовались с программой Rotatelogs Apache. Поэтому я попытался добавить ротацию на один из моих виртуальных хостов.
CustomLog '|/usr/sbin/rotatelogs "/var/log/apache2/access_log" 604800 0' "%h %v %l %u %t \"%r\" %>s %b"
Проблема заключалась в том, что он добавил некоторые числа после access_log, чтобы другие домены не записывали в тот же файл, что и повернутый. Есть ли способ сделать так, чтобы все домены записывались в один и тот же файл и его ротацию? если я введу ротацию журнала для всех виртуальных хостов, будет ли он использовать один и тот же файл или каждый домен перезапишет файл? Что мне делать с 6GB access_log?
В конце концов, ответ был ...
Чтобы использовать глобальное ведение журнала вместо ведения журнала для каждого виртуального хоста. Я закомментировал все настраиваемые журналы и журналы ошибок с виртуальных хостов, а затем в httpd.conf добавил
CustomLog '|/usr/sbin/rotatelogs "/var/log/apache2/access_log.%Y-%m-%d" 604800 0' "%h %v %l %u %t \"%r\" %>s %b"
ErrorLog '|/usr/sbin/rotatelogs "/var/log/apache2/error_log.%Y-%m-%d" 604800 0'
Это сработало