Como usar o Log4j em Selenium?
โก Resumo Inteligente
Log4j em Selenium รฉ rรกpido e flexรญvel Java Framework de registro que grava detalhes do fluxo de scripts de automaรงรฃo. Ele suporta mรบltiplos nรญveis de log, appenders e layouts, e funciona bem com o LogExpert para anรกlise dos arquivos de log gerados.
O que รฉ o Log4j Selenium?
Log4j รฉ uma estrutura de registro (API) rรกpida, flexรญvel e confiรกvel, escrita em Java e foi desenvolvido no inรญcio de 1996. ร distribuรญdo sob a licenรงa apache Licenรงa de software. O Log4j foi portado para a linguagem C. C++, C#, Perl, Python, Ruby e linguagens Eiffel. ร uma ferramenta usada para projetos de pequena a grande escala. Selenium projetos de automaรงรฃo.
Por que usar Log4j?
O Log4j oferece diversas vantagens prรกticas para Selenium projetos:
- ร um cรณdigo aberto.
- Com o Log4j, รฉ possรญvel armazenar os detalhes do fluxo de Selenium Automaรงรฃo em um arquivo ou banco de dados.
- O Log4j funciona tanto para projetos grandes quanto pequenos.
- No Log4j, as instruรงรตes de log substituem as instruรงรตes System.out.println no cรณdigo para saber o status de um projeto enquanto ele estรก sendo executado.
Componentes Log4j
Madeireiros
O Logger รฉ responsรกvel por registrar informaรงรตes. Para implementar loggers em um projeto, os seguintes passos precisam ser executados.
Crie uma instรขncia para a classe Logger.
A classe Logger รฉ uma JavaUtilitรกrio baseado em Log4j que jรก possui todos os mรฉtodos genรฉricos implementados para utilizรก-lo.
Defina o nรญvel Log4j
Basicamente, existem sete tipos de nรญveis de log:
- TODOS โ Este nรญvel de registro grava tudo (ativa todos os registros).
- DEBUG โ exibe informaรงรตes de depuraรงรฃo e รฉ รบtil na fase de desenvolvimento.
- INFO โ imprime mensagens informativas que destacam o andamento da aplicaรงรฃo.
- AVISO โ exibe informaรงรตes sobre comportamentos defeituosos e inesperados do sistema.
- ERRO โ exibe mensagens de erro que podem permitir que o sistema continue.
- FATAL โ imprime informaรงรตes crรญticas do sistema que causam a falha do aplicativo.
- DESATIVADO โ Sem registro de logs.
Anexos
Um Appender รฉ usado para entregar eventos de log ao seu destino. Ele decide o que acontecerรก com as informaรงรตes de log. Em outras palavras, ele grava os logs em um arquivo. A seguir, alguns tipos de Appenders:
- O ConsoleAppender registra os logs na saรญda padrรฃo.
- O FileAppender imprime os registros em um arquivo especรญfico.
- RollingFileAppender escreve em um arquivo com um tamanho mรกximo.
Observaรงรฃo: No arquivo log4j.properties, um appender pode ser chamado com qualquer nome. Existem outros appenders tambรฉm, mas o foco aqui estรก nesses poucos.
Layouts
O Layout รฉ responsรกvel por formatar as informaรงรตes de registro em diferentes estilos.
A classe Logger fornece diferentes mรฉtodos para lidar com atividades de registro. Ela oferece dois mรฉtodos estรกticos para obter um objeto Logger.
public static Logger getRootLogger()
public static Logger getLogger(String name)
Como o Log4j estรก configurado?
Para configurar o Log4j, decida qual appender implementar. Os parรขmetros do appender sรฃo definidos de acordo.
- Use o nรญvel DEBUG e o RollingFileAppender.
- Duas configuraรงรตes ou registros sรฃo criados:
- Primeiro: um logger raiz, que grava todos os logs gerados pelo sistema em um arquivo chamado Selenium.logs.
- Segundo: um registrador de aplicativos, que grava informaรงรตes geradas por comandos manuais no cรณdigo em um arquivo chamado Manual.logs.
- O layout utilizado รฉ o PatternLayout.
#Registrador raiz
log4j.rootLogger=DEBUG,file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\Guru99\\src\\Selenium.logs
log4j.appender.file.maxFileSize=900KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.file.Append=false
#Registros de aplicativos
log4j.logger.devpinoyLogger=DEBUG, dest1
log4j.appender.dest1=org.apache.log4j.RollingFileAppender
log4j.appender.dest1.maxFileSize=900KB
log4j.appender.dest1.maxBackupIndex=6
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %c %m%n
log4j.appender.dest1.File=D:\\Guru99\\src\\Manual.logs
log4j.appender.dest1.Append=false
No exemplo acima, o Log4j estรก configurado para registrar logs em dois arquivos diferentes com nomes diferentes. Selenium.log e Manual.log.
- file e dest1 sรฃo os dois identificadores.
- "Arquivo" รฉ usado para indicar o nome do arquivo no qual os registros sรฃo salvos.
- O parรขmetro โmaxFileSizeโ รฉ usado para configurar o tamanho mรกximo do arquivo de log. Quando o arquivo atinge esse tamanho, um novo arquivo รฉ criado com o mesmo nome e o nome do arquivo antigo recebe um sufixo de รญndice.
- O parรขmetro โmaxBackupIndexโ รฉ usado para configurar o nรบmero mรกximo de arquivos a serem copiados.
- โlayoutโ รฉ usado para definir o formato do arquivo de log.
- O parรขmetro โAppendโ รฉ usado para configurar a funรงรฃo de anexaรงรฃo. Quando definido como falso, um novo arquivo รฉ criado a cada vez, em vez de reutilizar o arquivo antigo para registro.
Como o Log4j รฉ usado em um script?
No cรณdigo, "log" รฉ usado como uma variรกvel de referรชncia que faz alusรฃo ao mรฉtodo getLogger da classe Logger.
Logger log = Logger.getLogger("devpinoyLogger");
Utilize a variรกvel de referรชncia โlogโ e o mรฉtodo de depuraรงรฃo para registrar as informaรงรตes necessรกrias.
log.debug("--information--");
O que รฉ uma ferramenta LogExpert?
O LogExpert รฉ uma ferramenta com as seguintes caracterรญsticas:
- LogExpert รฉ um Windows Ferramenta desenvolvida para rastrear registros.
- ร um visualizador de logs gratuito e de cรณdigo aberto.
- ร uma ferramenta de anรกlise de logs com mรบltiplos recursos, como busca, filtragem, marcaรงรฃo e destaque de logs.
- Os arquivos de registro sรฃo atualizados automaticamente quando abertos nesta ferramenta.
- Vรกrios arquivos de registro podem ser abertos em abas diferentes.
- ร possรญvel adicionar comentรกrios aos favoritos, e uma tecla de atalho permite navegar entre eles. Uma lista completa de favoritos estรก disponรญvel para navegaรงรฃo.
- Os atalhos da ferramenta sรฃo fornecidos no arquivo de ajuda para que possam ser consultados quando necessรกrio.
Como usar o Log4j em Selenium
Passo 1) In EclipseCrie um novo projeto com o nome log4j_demo.
Passo 2) Clique com o botรฃo direito do mouse em src -> Caminho de Construรงรฃo -> Configurar Caminho de Construรงรฃo.
Passo 3) Clique em Bibliotecas e adicione a biblioteca Log4j. Ela pode ser baixada de [link para o site]. https://logging.apache.org/log4j/1.2/download.html.
Passo 4) Crie um novo arquivo. Este arquivo conterรก toda a configuraรงรฃo do Log4j.
- Clique com o botรฃo direito do mouse em src -> Novo -> Outro -> Geral -> Arquivo.
- Dรช o nome de โlog4j.propertiesโ ao arquivo.
- Clique em Concluir.
Crie mais dois arquivos e dรช a eles um nome. Selenium.logs e Manual.logs. Esses arquivos contรชm todos os registros criados pelo sistema e as instruรงรตes registradas manualmente.
Passo 5) No arquivo log4j.properties, copie toda a configuraรงรฃo.
Passo 6) Crie a classe principal:
- Clique com o botรฃo direito do mouse no pacote padrรฃo -> Novo -> Classe.
- Dรช um nome ร turma e clique em Concluir.
Passo 7) Copie o seguinte cรณdigo para a classe principal.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.apache.log4j.Logger;
public class LoggingDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WebDriver driver = new FirefoxDriver();
Logger log = Logger.getLogger("devpinoyLogger");
driver.get("https://healthunify.com/bmicalculator/");
log.debug("opening website");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
log.debug("entering weight");
driver.findElement(By.name("wg")).sendKeys("87");
log.debug("selecting kilograms");
driver.findElement(By.name("opt1")).sendKeys("kilograms");
log.debug("selecting height in feet");
driver.findElement(By.name("opt2")).sendKeys("5");
log.debug("selecting height in inches");
driver.findElement(By.name("opt3")).sendKeys("10");
log.debug("clicking on calculate");
driver.findElement(By.name("cc")).click();
log.debug("getting SIUnit value");
String SIUnit = driver.findElement(By.name("si")).getAttribute("value");
log.debug("getting USUnit value");
String USUnit = driver.findElement(By.name("us")).getAttribute("value");
log.debug("getting UKUnit value");
String UKUnit = driver.findElement(By.name("uk")).getAttribute("value");
log.debug("getting overall description");
String note = driver.findElement(By.name("desc")).getAttribute("value");
System.out.println("SIUnit = " + SIUnit);
System.out.println("USUnit = " + USUnit);
System.out.println("UKUnit = " + UKUnit);
System.out.println("note = " + note);
driver.quit();
}
}
No cรณdigo acima, o script visita https://healthunify.com/bmicalculator/ e verifica a calculadora de IMC. O peso inserido รฉ 87 kg e a altura รฉ 1,78 m (5 pรฉs e 10 polegadas). O script verifica a saรญda em unidades SI, americanas e britรขnicas.
Utilizando Logger.getLogger(โdevpinoyLoggerโ), o script cria logs em nรญvel de sistema. Usando o mรฉtodo log.debug, os dados sรฃo armazenados em Manual.log.
Passo 8) Execute o script. Abra o local do Manual e Selenium registros para verificar os dados de registro.
Como a ferramenta LogExpert pode ser usada para analisar logs
- Baixe a ferramenta em https://github.com/zarunbal/LogExpertAcesse a pasta de downloads do LogExpert.
- Abra o LogExpert.exe.
- Clique em Arquivo -> Abrir e navegue atรฉ o caminho onde o Manual.log e SeleniumOs arquivos .log estรฃo armazenados. Selecione o arquivo.
- Selecione a opรงรฃo โSeguir a caudaโ.
Selecionar "Seguir cauda" habilita o monitoramento contรญnuo dos logs, o que significa que o LogExpert atualiza automaticamente o arquivo de log enquanto o script estรก em execuรงรฃo. Com qualquer outro editor, como o Bloco de Notas, o arquivo precisa ser fechado e reaberto repetidamente para atualizar os logs. Com o LogExpert no modo "Seguir cauda", isso nรฃo รฉ necessรกrio.
As imagens a seguir mostram o layout dos registros.
Usando o LogExpert, os registros criados pelo Selenium O WebDriver pode ser depurado. Nesta ferramenta, รฉ possรญvel:
- Pesquise qualquer texto e expressรฃo regular.
- Crie marcadores e comente neles, alรฉm de navegar entre os marcadores, algo que nรฃo รฉ possรญvel em nenhuma outra ferramenta.
- Filtre os registros, pesquise intervalos de texto e aplique outro filtro aos registros previamente filtrados.
- Destaque diferentes linhas com base em determinadas palavras.
Esta ferramenta tambรฉm ajuda a particionar os dados em colunas diferentes.












