Rotacionamento de Logs
Introdução:
O rotacionamento de logs é um mecanismo utilizado para gerenciar os arquivos de log gerados pela aplicação, evitando que cresçam indefinidamente e consumam espaço em disco.
Esse processo cria novos arquivos de log periodicamente e arquiva ou remove os arquivos antigos conforme a política de retenção definida.
No Apache Tomcat, parte dos logs já possui suporte nativo para rotação por meio do sistema de logging baseado em java.util.logging (JULI). Entretanto, alguns arquivos — como o catalina.out — são gerados diretamente pela saída padrão do processo Java (stdout) e não são rotacionados automaticamente.
Para garantir o controle adequado do uso de disco e a organização dos registros da aplicação, é necessário configurar mecanismos de rotação de logs utilizando tanto as configurações internas do Tomcat quanto ferramentas do sistema operacional, como o logrotate em ambientes Linux.
Objetivo:
Esta documentação tem como objetivo apresentar um procedimento de referência para configurar o rotacionamento de logs do Apache Tomcat em ambientes Linux.
Especificamente, o procedimento busca:
-
configurar a rotação automática dos logs gerados pelo Tomcat;
-
evitar o crescimento excessivo de arquivos de log, especialmente do
catalina.out; -
definir uma política de retenção de logs adequada;
-
otimizar o uso de espaço em disco por meio de compressão e remoção de arquivos antigos;
-
facilitar o monitoramento e a análise de eventos da aplicação.
Os parâmetros apresentados constituem recomendações e podem ser ajustados por cada organização conforme seu contexto operacional, políticas internas e requisitos de governança.
Procedimento:
Para configurar o rotacionamento de logs do Tomcat, os comandos abaixo devem ser executados por um usuário com permissões administrativas no servidor.
1. Pré-requisitos:
-
acesso administrativo ao servidor
-
Tomcat instalado
-
utilitário
logrotatedisponível no sistema -
conhecimento básico de terminal Linux
2. Localize a instalação do tomcat:
Observação: A localização da instalação do tomcat pode variar de acordo com cada organização.
Variáveis importantes:
CATALINA_HOME=/opt/tomcat
CATALINA_BASE=/opt/tomcat
Os logs normalmente ficam no diretório:
/opt/tomcat/logs
Liste os arquivos no diretório::
ls /opt/tomcat/logs
Exemplo de arquivos que podem aparecer:
catalina.out
catalina.2026-03-09.log
localhost.2026-03-09.log
manager.2026-03-09.log
3. Configuração de Rotacionamento de Logs:
Crie um backup do arquivo logging.properties:
sudo cp /opt/tomcat/conf/logging.properties /opt/tomcat/conf/logging.properties_bkp
Edite o arquivo logging.properties :
vim /opt/tomcat/conf/logging.properties
Altere o arquivo para as configurações abaixo:
1catalina.org.apache.juli.FileHandler.level = INFO
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.maxDays = 30
2localhost.org.apache.juli.FileHandler.level = INFO
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
2localhost.org.apache.juli.FileHandler.maxDays = 30
A alteração dessa configuração acarreta nas seguintes configurações:
- Remove logs com mais de 30 dias
- Cria logs diários
Exemplo de arquivos gerado:
catalina.2026-03-09.log
catalina.2026-03-08.log
4. Impacto da alteração:
- A alteração afeta apenas a gestão de arquivos de log.
- Logs antigos poderão ser removidos automaticamente conforme política definida.
5. Configurar rotação para o catalina.out (logrotate) :
Normalmente, o tamanho do arquivo catalina.out é um dos principais problemas nos ambientes.
Para mitigar essa situação, é recomendável realizar a configuração da rotação do arquivo catalina.out, evitando o crescimento excessivo do log.
Para isso, é necessário criar a seguinte configuração. Primeiramente, crie o arquivo abaixo:
sudo vim /etc/logrotate.d/tomcat
Copie a configuração recomendada abaixa, cole no arquivo tomcat e salve o arquivo.
/opt/tomcat/logs/catalina.out {
daily
rotate 15
size 50M
compress
delaycompress
missingok
notifempty
copytruncate
dateext
dateformat -%Y%m%d
create 640 tomcat tomcat
}
6. Explicação dos parâmetros:
| Parâmetro | Função |
|---|---|
daily |
rotação diária |
rotate 15 |
mantém 15 arquivos |
size 50M |
rotaciona se passar de 50MB |
compress |
gzip nos logs antigos |
delaycompress |
evita compressão imediata |
copytruncate |
não precisa reiniciar Tomcat |
dateext |
adiciona data no arquivo |
create |
recria arquivo com permissões |
7. Validação da rotação de logs:
Opcionalmente, caso deseje, é possível validar as configurações inseridas.
Executar manualmente o logrotate:
sudo logrotate -f /etc/logrotate.d/tomcat
ls -lh /var/lib/tomcat10/logs
8. Estrutura final de logs:
Depois de alguns dias, a estrutura de arquivos de logs ficara assim:
catalina.out
catalina.out-20260309
catalina.out-20260308.gz
catalina.out-20260307.gz
catalina.2026-03-09.log
catalina.2026-03-08.log
localhost.2026-03-09.log
9. Política de retenção recomendada ( produção):
| Tipo | Retenção |
| catalina.out | 15 dias |
| catalina logs | 15 dias |
| logs compressos | 15 dias |
Uso médio de disco:
50MB × 15 ≈ 750MB
Com compressão:
≈ 200MB
10. Rollback
Para desfazer a configuração:
-
Remover o arquivo:
sudo rm /etc/logrotate.d/tomcat
sudo mv /opt/tomcat/conf/logging.properties_bkp /opt/tomcat/conf/logging.properties
3. Reiniciar o Tomcat (caso necessário).
Ressalta-se que esses parâmetros e configurações constituem recomendações. Cabe a cada organização avaliá-los e definir os valores mais apropriados, considerando seu contexto operacional, suas políticas internas e seus requisitos de governança.
Explicação técnica:
O Tomcat utiliza o framework java.util.logging, implementado no Tomcat como JULI.
Ele já possui suporte para:
-
rotação diária
-
retenção baseada em dias
Entretanto, o arquivo catalina.out é produzido pelo stdout do processo Java, e não pelo sistema de logging. Por esse motivo, ele não é rotacionado automaticamente.
A ferramenta logrotate resolve esse problema ao:
-
detectar tamanho ou data do arquivo
-
copiar o log atual
-
truncar o arquivo original
-
comprimir logs antigos
-
remover arquivos antigos
Esse processo permite controlar o uso de espaço em disco sem a necessidade de reiniciar o Tomcat.
Referências:
Apache Logging Configuration
https://tomcat.apache.org/tomcat-10.0-doc/logging.html
JULI Documentation
https://tomcat.apache.org/tomcat-10.0-doc/logging.html#Using_java.util.logging_(default)
Logrotate Manual
https://linux.die.net/man/8/logrotate
Linux Logging Best Practices
https://www.redhat.com/en/blog/linux-logrotate