Skip to main content

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 logrotate disponí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
Verificar arquivos gerados:

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:

  1. Remover o arquivo:

sudo rm /etc/logrotate.d/tomcat
     2. Restaurar o arquivo original:
     
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