Tomcat 6 rolagem e remoção de log HTTP

5

Executamos nosso aplicativo da Web em um contêiner do Apache Tomcat 6. Nosso código usa SLF4J e Logback e rola / limpa muito bem. O log do Tomcat (catalina, stdout, etc.) acabou de ser excluído em uma reinicialização do serviço Tomcat.

O problema é que também estamos fazendo algum logging HTTP. Tanto quanto qualquer um pode dizer que está vindo desta linha no arquivo server.xml do Tomcat.

<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve" directory="httplogs" pattern="combined" resolveHosts="false" prefix="" suffix=".log" rotatable="true" fileDateFormat="yyyy-MM-dd" />

Isto parece rodar muito bem, mas nunca expurga. Existe uma maneira de fazer com que o Tomcat limpe isso automaticamente ou eu tenho que modificar o script de reinicialização para limpar o diretório httplogs?

    
por Instantsoup 06.07.2009 / 21:05

3 respostas

6

Gostaria de sugerir a limpeza dos arquivos de log usando um cron job (UNIX) ou uma tarefa agendada (Windows).

Primeiro, determine por quanto tempo você deseja manter os logs, 1 semana, 1 mês, 3 meses? Em seguida, execute um script todos os dias para remover os logs antigos. No Unix para excluir arquivos de log com mais de 90 dias:

find /path/to/httplogs/ -name "*.log" -type f -mtime +90 -exec rm -f {} \;

Nas janelas, um comando similar pode ser usado ( forfiles está disponível apenas em algumas edições)

forfiles /p "C:\path\to\httplogs\" /s /m *.log /d -90 /c "cmd /c del @PATH"

Leia a documentação on-line desses comandos e entenda e teste o que eles estão fazendo antes de colocá-los em um ambiente de produção.

Se houver um prefixo comum para esses registros, você poderá adicioná-lo à máscara de pesquisa para que seja mais específico em quais arquivos serão removidos. Como alternativa, geralmente, gzip arquivos mais antigos, em vez de excluí-los, no caso de serem úteis mais tarde.

    
por 07.08.2009 / 22:32
1

Quando você analisa o código-fonte da turma, por exemplo aqui em pesquisa de código do google você pode ver, que não há nenhuma purga em tudo. Se você tem alguém por perto que possa codificar algumas linhas Java, pode facilmente estender a classe e adicionar a função necessária.

    
por 07.07.2009 / 09:54
0

Tenho certeza de que esse precisa ser eliminado no serviço tomcat, junto com os outros logs que você mencionou.

    
por 07.07.2009 / 06:25