Nesse tutorial vamos mostrar como configuramos de forma rádida a API Log4j rapidamente em projetos Java. Vamos entender um pouco como funciona o mecanismo de nível de Logs da API e configurar um projeto simples.
1 - Configurando o pom.xml do projeto
Para que possamos utilizar a API de logs, a primeira coisa que temos que fazer é adicionar a dependência ao Projeto, da seguinte forma:
<dependencies> ... <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.13</version> </dependency> </dependencies></pre>
Assim que adicionamos a dependência, podemos ir para o próximo passo, criar um arquivo de properties, com as caracteristicas que desejamos para nosso log.
2 - Criando um arquivo log4j.properties
O arquivo de properties deve ficar no caminho:
..\log4j-prj\src\main\resources
Nota: estou considerando o caminho acima, caso você tenha descompactado o exemplo de download, no final da página
#informando o level (Debug) e as saidas (standard e R) log4j.rootLogger=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=example.log log4j.appender.R.MaxFileSize=100KB # Keep one backup file log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
3 - Entendendo os pontos importantes
Na linha:
log4j.rootLogger=debug, stdout, R
Estamos definindo duas coisas, a primeira é o nível da saída do Log, no nosso exemplo, DEBUG, e a segunda, onde vamos redirecionar as saidas dos logs, nesse caso, stdout (saída padrão, console, são exibe a mensagem e não grava em lugar nenhum) e R que nesse exemplo foi configurado para direcionar a saída em arquivo.
As linhas:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
e:
log4j.appender.R=org.apache.log4j.RollingFileAppender
Definem o tipo de Appender que conectaremos ao stdout (Console) e ao R (Arquivo).
O Appender RollingFileAppender define que vamos direcionar a saida para um arquivo e que esse arquivo ao atingir um limite predefinido, será feita uma rolagem, ou seja, um backup do atual e criado um novo em branco.
Definimos através do ConversionPattern qual o formato do log que será gerado
Quando utilizamos o RollingFileAppender podemos configurar o tamanho do arquivo, através do parametro MaxFileSize, o local onde serão gravado o arquivo File e a quantidade de backups, uma vez que estamos utilizando o Appender que rotaciona arquivos, MaxBackupIndex.
Conclusão
Esse exemplo é um caso bem simples de como deixar a configuração do log dentro do projeto, quando estamos desenvolvendo aplicações que são executadas dentro de um container como o JBoss, por exemplo, podemos deixar a configuração dentro do próprio container, e nesse caso usamos a api de log do container, dispensando o uso do Log4j. Essa decisão fica com o Arquiteto responsável pelo projeto, ao analisar as vantagens e desvantagens, pode decidir o que é melhor.
Download
Caso queira ver o exemplo funcionando, você pode fazer o download do mesmo, clicando em: Exemplo do tutorial.
Referências
http://logging.apache.org/log4j/1.2/manual.html