Tempo aproximado para leitura: 00:05:15 min
Dúvida
Como configurar o log do Tomcat utilizado para o Datasul for THF?
Ambiente
Framework – Framework (Linha Datasul) – Tomcat - Versão 12
Solução
Em alguns casos, para obter mais informações sobre um determinado erro, pode ser necessário ativar um log mais detalhado. O Tomcat permite a configuração de logs, de acordo com diferentes necessidades.
Este artigo demonstrará a configuração JULI - Java utility logging implementation, padrão do Tomcat, utilizada também pelo produto Datasul for THF - TOTVS HTML Framework. Abaixo estão detalhados os níveis de log que podem ser utilizados, incluindo um breve descritivo do tipo de informação que cada nível fornece:
Level | Log Content |
SEVERE | Serious failures |
WARNING | Potential problems |
INFO | Informational messages |
CONFIG | Static configuration messages |
FINE | Trace messages |
FINER | Detailed trace messages |
FINEST | Highly detailed trace messages |
Esta lista está organizada do menor nível para o maior. Ao habilitar um nível de log, todas as mensagens dos demais níveis abaixo dele também serão exibidas. Como exemplo, ao ativar o nível INFO, as mensagens dos níveis INFO, WARNING e SEVERE serão exibidas no log.
Por questões de desempenho, recomenda-se que ambientes de produção utilizem níveis de log menores, como WARNING, por exemplo.
As configurações de log do Tomcat são armazenadas no arquivo conf\logging.properties. A estrutura deste arquivo é simples, bem como sua configuração. Neste arquivo são configurados os handlers de log. Cada handler armazena uma configuração de uma saída de log específica.
Um dos handlers é o catalina. O handler catalina armazena informações relacionadas ao startup e shutdown do Tomcat, o deploy de aplicações, mensagens informativas e falhas. Este é o handler geralmente utilizado para análise de erros relacionados ao Tomcat e a aplicação. Observe a configuração deste handler no arquivo conf\logging.properties:
1catalina.org.apache.juli.AsyncFileHandler.level = INFO
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
Detalhamos abaixo os principais parâmetros:
level - Nível de log, possibilitando a utilização de todos os níveis descritos neste artigo;
directory - Diretório onde será armazenado o arquivo de log. Neste caso, o arquivo log será gerado no diretório logs, localizado no diretório raiz do Tomcat;
maxDays - Quantidade de dias que os arquivos de log serão mantidos no diretório. Quando esta quantidade for atingida, os arquivos mais antigos serão eliminados para dar lugar aos novos. Se for definido um valor menor que zero, os logs permanecerão no diretório até que sejam apagados manualmente. Por padrão, os logs são rotacionados por dia, na nomenclatura do exemplo: catalina.2020-07-06.log;
encoding - Codificação utilizada para o arquivo de log.
Informações detalhadas sobre todas as propriedades relacionadas a cada handler podem ser obtidas no link disponibilizado ao final deste artigo.
Para alterar o nível de log, basta alterar o valor do parâmetro level para um dos que foram listados neste artigo. Em seguida, reinicie o serviço do Tomcat. Ao ser iniciado novamente, o nível já estará configurado com o novo valor informado.
Para detalhar o modo de log para FINEST:
1) Localize o arquivo logging.properties do Tomcat que está utilizando, fica na pasta conf.
2) Inclua, no final do arquivo, as linhas para o log completo:
#Log framework TOTVS
com.totvs.framework.level = FINEST
3) Salve o arquivo e reinicie o serviço.
Importante
As duas propriedades precisam estar com mesmo valor para assumir o nível do log FINEST:
1catalina.org.apache.juli.AsyncFileHandler.level = FINEST
com.totvs.framework.level = FINEST
No arquivo conf/logging.properties é parametrizado o destino de quatros logs distintos, o catalina, localhost, manager e host-manager, e não recomendamos que o arquivo destino que armazenará os dados de log seja um único para estas quatro opções, ou seja, solicitamos que para cada log seja definido um arquivo único para manter os registros.
Saiba mais
Para obter informações sobre as propriedades dos handlers utilizados neste artigo utilize o Class FileHandler.
0 Comentários