Como configurar o log4J em um projeto WEB
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380
Como configurar o log4J em um projeto WEB
Olá amigos, hoje vamos fazer o uso da biblioteca Java Log4J que é pode nos auxiliar a identificar o processamento da aplicação em diversos níveis de detalhe.
1. O que é o Log4J
O Log4J uma biblioteca de log de aplicações em Java. Seu nome completo é Apache log4j que é um projeto Apache Software Foundation e desenvolvido por uma equipe dedicada da Apache Software Foundation. Ele é uma das bibliotecas mais utilizadas no mundo Java por ser muito útil e prática para registros de execução da aplicação.
2. Níveis de Log
OFF
TRACE
DEBUG
INFO
WARN
ERROR
FATAL
ALL
Baixo Nível (Mais detalhes) =================================== Alto Nível (Menos detalhe)
ALL => TRACE => DEBUG => INFO => WARN => ERROR => FATAL
FATAL: São exibidas mensagens definidas como FATAL. Este nível de log é utilizado quando ocorre um erro na aplicação e não será possível recuperar os dados processados. Esse é um típico erro de ambiente.
ERROR: São exibidas mensagens definidas como ERROR e FATAL. O nível ERROR é utilizado quando
temos um erro na aplicação que pode ser tratado e recuperado.
1 2 3 4 5 | try { //.... } catch (Exception e) { logger.error("Ocorreu o seguinte erro na aplicação: " + e.getMessage()); } |
WARNING: São exibidas mensagens definidas como WARN, ERROR e FATAL. O nível WARNING é utilizado
para avisar que há um erro em potencial na aplicação.
INFO: São exibida mensagens definidas como INFO, WARN, ERROR e FATAL. O nível INFO é utilizado para exibir informações da aplicação é comum utilizá-lo para gravar no log mensagens exibidas para o usuário na tela.
DEBUG: São exibidas mensagens definidas como DEBUG, INFO, WARN, ERROR e FATAL. Este nível exibe para identificar cada atividade executada na aplicação durante sua execução.
TRACE: São exibidas mensagens definidas como TRACE, DEBUG, INFO, WARN, ERROR e FATAL. Este nível é mais detalhado que o debug, pois permite uma detalhamento inclusive dos logs de componentes de terceiros utilizados em nossa aplicação.
ALL: É o mais baixo nível possível de log. Torna ligado todos os níveis de log.
OFF: Este é o nível “desligado”. Nenhum tipo de informação é gerada no LOG.
Quanto mais baixo o nível de log mais detalhes teremos sobre a execução da nossa aplicação. Em contra partida lembre-se que para gerar o log o framework log4J exigirá processamento e isto pode comprometer a performance da sua aplicação. Use com cautela!
3. Criando um projeto de exemplo
Crie um projeto Web chamado FeltexLog4J.
4. Criando o arquivo de LOG
Crie um arquivo chamado “log4j.properties” na pasta “src” do seu projeto. Em seguida adicione o seguinte conteúdo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # Níveis: ALL, DEBUG, ERROR, FATAL, INFO, OFF,TRACE, WAR #Nível de Log INFO Saídas A1 e Console log4j.rootLogger= INFO, A1, Console #Informando qual o tipo de geração do arquivo de log. Neste caso será diário log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender #Onde será gravado o arquivo de Log e qual será o seu nome log4j.appender.A1.file=C:/temp/FeltexLog4J.1.0.log #Definição de um padrão de saída de log para A1 log4j.appender.A1.layout=org.apache.log4j.PatternLayout #Padrão de data como 2050-01-31 (AnoAnoAnoAno-MesMes-DiaDia) log4j.appender.A1.DatePattern='.'yyyy-MM-dd #Definição de como será exibida cada lilha de LOG log4j.appender.A1.layout.ConversionPattern=%p - %d{yyMMdd.HHmmss} - FeltexLog4J - %m %n #Uma nova saída para o LOG, neste caso a console para IDE (Eclipse o NetBeans) ou prompt (Windows ou Linux) log4j.appender.Console=org.apache.log4j.ConsoleAppender #Definição de um padrão de saída de log para Console log4j.appender.Console.layout=org.apache.log4j.PatternLayout #Uma nova saída para o LOG, neste caso a console para IDE (Eclipse o NetBeans) ou prompt (Windows ou Linux) log4j.appender.Console.layout.ConversionPattern=%p - %d{yyyyMMdd.HHmmss} - FeltexLog4J - %m %n |
As linhas que começam com “#” são comentários para as linhas de comando.
5. Criação do Servlet
Crie um servlet na sua aplicação chamado “ExibirMensagem”. Quando ele for executado o Log4J exibirá as mensagens no arquivo de log e na console. Veja o código abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | package br.com.feltex.log4j.servlet; import java.io.IOException; import java.util.Date; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; @WebServlet("/ExibirMensagem") public class ExibirMensagem extends HttpServlet { private static final long serialVersionUID = 1L; // Criação da variável que utilizaremos para gravar as linhas de LOG private static Logger logger = Logger.getLogger(ExibirMensagem.class); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { logger.debug("Iniciado o método doGet"); doPost(request, response); logger.debug("Concluído o método doGet"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String mensagem = ""; try { logger.info("Nível de Log INFO"); logger.warn("Nível de Log WARN"); logger.debug("Nível de Log DEBUG"); logger.error("Nível de Log ERROR"); logger.trace("Nível de Log TRACE"); // Mensagem que será exibida na tela com a informação da última // execução. mensagem = "<H3>Nível de log atual: " + logger.getLevel() + "</H3>"; mensagem += "<H3>Ultima execução: " + new Date() + "<H3>"; //Atribuição da mensagem para enviar à página index.jsp request.setAttribute("mensagem", mensagem); //Preparação da chamada da página index.jsp RequestDispatcher rd = request.getRequestDispatcher("index.jsp"); //Envio da requisição para a página index.jsp rd.forward(request, response); } catch (Exception e) { logger.error("Ocorreu o seguinte erro na aplicação: " + e.getMessage()); } } } |
6. Criação da página
Crie uma página chamada “index.jsp”. Nela teremos um link para o servlet que irá gerar logs.
1 2 3 4 5 6 7 8 9 10 | <html> <head> <title>projeto Log4J</title> </head> <body> Bem vindo ao projeto Log4J <br><a href="ExibirMensagem">Executar Servlet</a> <br>${mensagem} </body> </html> |
7. Execução do projeto
Inicie o seu projeto e clique no link da página principal. O resultado será algo com o exemplo abaixo:
INFO - 20141017.171951 - FeltexLog4J - Nível de Log INFO WARN - 20141017.171951 - FeltexLog4J - Nível de Log WARN ERROR - 20141017.171951 - FeltexLog4J - Nível de Log ERROR
8. Download do exemplo completo
Faça o download do exemplo completo neste link. Se você não souber importar um arquivo war então leia este artigo aqui.
Então é isso amigos. Por hoje é só e vida que Segue!
Deixe um comentário
Você precisa fazer o login para publicar um comentário.