Criando arquivos de log com Log4J


Olá pessoal, hoje iremos ver como criar logs em aplicações Java com a ferramenta Apache Log4j.

O que é um arquivo de log ? 

Um arquivo de log, é um arquivo geralmente em formato texto onde as aplicações escrevem informações sobre seu funcionamento, erros, etc. 

É muito importante um aplicativo ter um arquivo de log, porque com ele conseguimos monitorar a execução e também diagnosticar os locais exatos quando um erro é gerado.

O maior exemplo de geração de logs, e que praticamente todo desenvolvedor já utilizou, são os logs de execução dos Containers Java, com estes arquivos é possível analisar todo o funcionamento do Container e também achar os métodos que lançam algum tipo de Exception na execução dos aplicativos.

O Log4J

O Log4j é uma ferramenta desenvolvida e mantida pela Fundação Apache, com ela podemos criar arquivos de log de maneira fácil e padronizada, sem dúvida o log4j é a ferramenta de log mais utilizada em aplicações Java, vários projetos open source a utilizam, entre elas estão Hibernate e Spring Framework.

O site oficial onde podemos efetuar o download e ter exemplos da utilização é o abaixo:

http://logging.apache.org/log4j/1.2/

Níveis de log

Um ponto importante a ser compreendido ao trabalhar com Log4J são os níveis de log, eles estão divididos em 4 níveis, que são eles:

DEBUG: é o maior nível de log, geralmente utilizado para detalhamento completo das operações realizadas no sistema.

INFO: nível utilizado para mostrar informações importantes, este nível geralmente é o mais utilizado.

WARNING: é geralmente utilizado para mostrar algo que requer atenção, mas não é considerado um erro no sistema.

ERROR: nível para rastreamento de erro, onde podemos exibir uma mensagem e também a exceção gerada.

Arquivo de configuração

Para utilizar o log4j devemos ter um arquivo de configuração onde descrevemos toda característica da geração de log, este arquivo pode ser um arquivo properties ou xml, neste tutorial iremos utilizar um arquivo no formato properties.

Aplicação de exemplo

Para mostrar o funcionamento do log4j, temos uma aplicação que irá gerar os arquivos de logs estruturados da seguinte forma:
  • Criar 2 arquivos, com isso cada parte do sistema poderia ter seu arquivo de log separado, por exemplo: separar o log de persistência do log de domínio;
  • Quebrar os arquivos de log por dia, assim cada dia teria seu arquivo de log, oque no momento de leitura dos arquivos ficaria mais fácil de encontrar uma informação.
O projeto ficou estruturado da seguinte forma:


Estrutura do projeto de exemplo.

Abaixo as 3 classes e o arquivo de configuração dos logs:

Classe de execução do aplicativo e responsável por carregar o arquivo de configuração de log4J.

Classe que escreve no arquivo app_one.log.

Classe que escreve no arquivo app_two.log.

Arquivo de configuração do log4J.

No arquivo de configuração, determinamos todas as configurações para gerar os arquivos de log, em nosso exemplo, as configurações são as seguintes:
  • Log ajustado para o nível de DEBUG;
  • Configurado para que o log seja exibido no console de execução da aplicação, isso á feito através do appender CONSOLE;
  • Criados appenders para salvar os logs em 2 arquivos de separados, estes appenders são ARQUIVO_APP_ONE ARQUIVO_APP_TWO;
  • Ajustado para que em ambos os arquivos, a quebra seja feita por dia, ou seja, a cada dia será gerado um arquivo diferente, com isso fica mais fácil a rastreabilidade de erros ao analisar os arquivos de log da aplicação.
Ao executar o aplicativo de exemplo, os arquivos de logs serão salvos no diretório logs, este diretório é determinado no arquivo de configuração, após a execução os arquivos terão o seguinte conteúdo:

Arquivos de logs gerados: app_one.log e app_two.log.

Agora para testar o funcionamento do log4J, altere o nível de log e veja o resultado nos arquivos gerados.

Até a próxima.

Comentários

Popular Posts

Monitorando o Tomcat com Java VisualVM

AngularJS - Formatando Datas com o Filter Date

Injeção de dependências em Java EE usando @Inject, @EJB e @Resource ?

Gerenciamento de Transações com EJB - Parte 2

JBoss AS 7 - Instalação e Configuração

Configurando o arquivo application.properties do SpringBoot

Métodos Utilitários da Classe String

Lendo e Manipulando arquivos CSV com Java

Criando uma Aplicação com Spring Boot e MongoDB