14th out 2009
Criar um arquivo de log por dia no Apache com o rotatelogs
Vi ontem no blog do Danilo um post sobre como criar Virtualhosts no Apache, para servir diversos sites, e aproveitando a idéia, vale a pena falar como criar logs para cada Virtualhost.
O mais básico é dentro da diretiva do Virtualhost dizer que vai haver um CustomLog (log customizado) em uma determinada pasta, com um certo formato. O que eu sempre uso é algo assim (aproveitando o exemplo do Danilo):
<VirtualHost *>
ServerName meusite.dev
DocumentRoot /var/www/meusite.dev
CustomLog "/var/www/meusite/log/access.log" combined
</VirtualHost>
No caso, a pasta /var/www/meusite/log deve ser criada e o Apache deve ter permissão de escrita, e combined é o formato do log que o Apache vai criar (existem diversos, que podem ser encontrados na documentação oficial).
Agora, algo mais bacana é criar um arquivo de log por dia. Porque? Simples: um arquivo de log de um site mesmo de pequeno porte pode chegar facilmente a gigas de tamanho em pouco tempo – pouco tempo = poucos meses.
Criando um arquivo por dia, é mais fácil de se fazer backup, ter controle do que está sendo logado e mesmo para usar os logs – como com um log analyzer. Para isso, é possível usar no linux o rotatelogs. Sei que no Windows é possível fazer isso também, mas não lembro de cabeça qual é o aplicativo que o faz.
<VirtualHost *>
ServerName meusite.dev
DocumentRoot /var/www/meusite.dev
CustomLog "|/usr/sbin/rotatelogs /var/www/meusite/log/access_%Y%m%d.log 86400 -180" combined
</VirtualHost>
Nesse caso, para cada dia (86400 segundos) é criado um arquivo diferente, com o nome no formato desejado (underline, ano, mês e dia no final). Voi-lá, tudo funcionando!

Oi, passei pra conhecer o seu blog, e desejar bom fds.
bjss
aguardo sua visita