O Apache tem seu próprio script rotatelog . Do manual:
O comando e as opções para o rotatelog são:
rotatelogs [ -l ] [ -f ] logfile rotationtime|filesizeM [ offset ]
onde as opções são ...
% bl0ck_qu0te%Exemplos:
CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common
Isto cria os arquivos /var/logs/logfile.nnnn onde nnnn é a hora do sistema na qual o log começa nominalmente (esse tempo sempre será um múltiplo do tempo de rotação, assim você pode sincronizar os scripts cron com ele). No final de cada tempo de rotação (aqui após 24 horas), um novo registro é iniciado.
CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common
Isso cria os arquivos /var/logs/logfile.yyyy.mm.dd, em que yyyy é o ano, mm é o mês e dd é o dia do mês. O registro passará para um novo arquivo todos os dias à meia-noite, horário local.
CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common
Esta configuração irá rotacionar o arquivo de log sempre que ele atingir um tamanho de 5 megabytes.
ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"
Essa configuração rotacionará o arquivo de log de erros sempre que atingir um tamanho de 5 megabytes, e o sufixo para o nome do arquivo de log será criado na forma errorlog.YYYY-mm-dd-HH_MM_SS.
CustomLog "|bin/rotatelogs -t /var/logs/logfile 86400" common
Isso cria o arquivo / var / logs / logfile, truncando o arquivo na inicialização e, em seguida, truncando o arquivo uma vez por dia. Espera-se neste cenário que um processo separado (como o tail) processe o arquivo em tempo real.
Você pode colocar esses comandos no arquivo conf.