Cómo usar Log4j en Selenium?

⚡ Resumen inteligente

Iniciar sesión en 4j Selenium es rápido, flexible Java Marco de registro que graba los detalles del flujo de los scripts de automatización. Admite múltiples niveles de registro, appenders y formatos, y se integra perfectamente con LogExpert para el análisis de los archivos de registro generados.

  • 🔘 Componentes: Log4j está construido en torno a Loggers, Appenders y Layouts que juntos capturan, enrutan y formatean eventos de registro para Selenium proyectos de automatización.
  • ☑️ Niveles de registro: Siete niveles (ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF) controlan la cantidad de detalles que se registran durante la ejecución y la depuración del script.
  • Apéndices: ConsoleAppender, FileAppender y RollingFileAppender deciden si las entradas de registro se envían a la consola, a un archivo estático o a un conjunto rotativo de archivos.
  • 🧪 Configuración: El archivo log4j.properties define los registradores raíz y de la aplicación, las rutas de archivo, el tamaño máximo de archivo, el índice de copia de seguridad y las reglas de formato de PatternLayout.
  • 🛠️ Visor LogExpert: La herramienta gratuita LogExpert Selenium y archivos de registro manuales en tiempo real, con filtrado, marcadores, resaltado y visualización en múltiples pestañas.

Cómo usar Log4j en Selenium

¿Qué es Log4j? Selenium?

Log4j es un marco de registro (API) rápido, flexible y confiable escrito en Java y se desarrolló a principios de 1996. Se distribuye bajo el APACHE Licencia de software. Log4j ha sido portado a C, C++, C#, Perl, PythonLenguajes como Ruby y Eiffel. Es una herramienta utilizada para proyectos de pequeña a gran escala. Selenium proyectos de automatización.

¿Por qué utilizar Log4j?

Log4j ofrece varias ventajas prácticas para Selenium proyectos:

  • Es de código abierto.
  • Con Log4j, es posible almacenar los detalles del flujo de Selenium automatización en un archivo o base de datos.
  • Log4j funciona tanto para proyectos grandes como pequeños.
  • En Log4j, las instrucciones de registro reemplazan las instrucciones System.out.println en el código para conocer el estado de un proyecto mientras se está ejecutando.

Componentes de Log4j

Componentes de Log4j

Madereros

El registrador es responsable de registrar la información. Para implementar registradores en un proyecto, se deben realizar los siguientes pasos.

Crea una instancia para la clase Logger.

La clase Logger es una JavaUtilidad basada en que tiene todos los métodos genéricos ya implementados para usar Log4j.

Definir el nivel de Log4j

Principalmente existen siete tipos de niveles de registro:

  1. TODO: este nivel de registro registra todo (activa todos los registros).
  2. DEBUG: imprime información de depuración y resulta útil en la fase de desarrollo.
  3. INFO: imprime mensajes informativos que destacan el progreso de la aplicación.
  4. ADVERTENCIA: muestra información sobre el comportamiento defectuoso e inesperado del sistema.
  5. ERROR: imprime mensajes de error que podrían permitir que el sistema continúe.
  6. FATAL: imprime información crítica del sistema que provoca que la aplicación falle.
  7. APAGADO – No se permite iniciar sesión.

Anexos

Un Appender se utiliza para enviar los LogEvents a su destino. Decide qué sucederá con la información de registro. En pocas palabras, escribe los registros en un archivo. A continuación, se muestran algunos tipos de Appenders:

  1. ConsoleAppender registra la información en la salida estándar.
  2. FileAppender imprime los registros en un archivo específico.
  3. RollingFileAppender escribe en un archivo con un tamaño máximo.

Nota: En log4j.properties, se puede nombrar un appender con cualquier nombre. Existen otros appenders, pero aquí nos centraremos en estos pocos.

Diseños

El componente Layout se encarga de formatear la información de registro en diferentes estilos.

La clase Logger proporciona diferentes métodos para gestionar las actividades de registro. Proporciona dos métodos estáticos para obtener un objeto Logger.

public static Logger getRootLogger()
public static Logger getLogger(String name)

¿Cómo está configurado Log4j?

Para configurar Log4j, decida qué appender implementar. Los parámetros del appender se configuran en consecuencia.

  • Utilice el nivel DEBUG y RollingFileAppender.
  • Se crean dos configuraciones o registros:
    • Primero: un registrador raíz, que escribe todos los registros generados por el sistema en un archivo llamado Selenium.registros.
    • Segundo: un registrador de aplicaciones, que escribe la información generada por los comandos manuales en el código en el archivo llamado Manual.logs.
  • El diseño utilizado es PatternLayout.

#Registrador raíz

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 aplicaciones

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

En el ejemplo anterior, Log4j está configurado para registrar en dos archivos diferentes llamados Selenium.log y Manual.log.

  • file y dest1 son los dos identificadores.
  • "Archivo" se utiliza para indicar el nombre del archivo en el que se guardan los registros.
  • El parámetro "maxFileSize" se utiliza para configurar el tamaño máximo del archivo de registro. Cuando el archivo alcanza este tamaño, se crea un nuevo archivo con el mismo nombre y al archivo anterior se le añade un sufijo de índice.
  • “maxBackupIndex” se utiliza para configurar el número máximo de archivos que se van a respaldar.
  • “diseño” se utiliza para establecer el formato del archivo de registro.
  • La opción "Append" se utiliza para configurar la función de añadir datos. Cuando se establece en falso, se crea un archivo nuevo cada vez en lugar de reutilizar el archivo anterior para el registro.

¿Cómo se utiliza Log4j dentro de un script?

En el código, "log" se utiliza como una variable de referencia que alude al método getLogger de la clase Logger.

Logger log = Logger.getLogger("devpinoyLogger");

Utilice la variable de referencia "log" y el método debug para registrar la información necesaria.

log.debug("--information--");

¿Qué es una herramienta LogExpert?

LogExpert es una herramienta con las siguientes características:

  1. LogExpert es un Windows Herramienta desarrollada para analizar registros de actividad.
  2. Es un visor de registros gratuito y de código abierto.
  3. Se trata de una herramienta de análisis de registros con múltiples funciones, como búsqueda, filtrado, marcadores y resaltado de registros.
  4. Los archivos de registro se actualizan automáticamente al abrirlos con esta herramienta.
  5. Se pueden abrir varios archivos de registro en diferentes pestañas.
  6. Se pueden añadir comentarios a los marcadores y una tecla de acceso directo permite navegar entre ellos. La lista completa de marcadores está disponible para su consulta.
  7. En el archivo de ayuda se incluyen accesos directos a la herramienta para que se puedan consultar cuando sea necesario.

Cómo utilizar Log4j en Selenium

Paso 1) In Eclipse, crea un nuevo proyecto con el nombre log4j_demo.

Utilice Log4j en Selenium

Paso 2) Haz clic derecho en src -> Ruta de compilación -> Configurar ruta de compilación.

Utilice Log4j en Selenium

Paso 3) Haz clic en Bibliotecas y agrega la biblioteca Log4j. Puedes descargarla desde https://logging.apache.org/log4j/1.2/download.html.

Utilice Log4j en Selenium

Paso 4) Crea un nuevo archivo. Este archivo contiene toda la configuración de Log4j.

  1. Haz clic derecho en src -> Nuevo -> Otro -> General -> Archivo.
  2. Indique el nombre del archivo como “log4j.properties”.
  3. Haga clic en Finalizar.

Crea dos archivos más y nómbralos Selenium.logs y Manual.logs. Estos archivos contienen todos los registros creados por el sistema y las instrucciones registradas manualmente.

Utilice Log4j en Selenium

Paso 5) En log4j.properties, copie toda la configuración.

Utilice Log4j en Selenium

Paso 6) Crea la clase principal:

  1. Haga clic con el botón derecho en el paquete predeterminado -> Nuevo -> Clase.
  2. Dale un nombre a la clase y haz clic en Finalizar.

Utilice Log4j en Selenium

Paso 7) Copia el siguiente código en la clase 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();
    }
}

En el código anterior, el script visita https://healthunify.com/bmicalculator/ y verifica la calculadora de IMC. El peso introducido es de 87 kg y la altura es de 1,78 m (5 pies 10 pulgadas). El script comprueba que el resultado esté en unidades del SI, del sistema estadounidense y del sistema británico.

Mediante Logger.getLogger(“devpinoyLogger”), el script crea registros a nivel del sistema. Utilizando el método log.debug, los datos se almacenan en Manual.log.

Paso 8) Ejecute el script. Abra la ubicación de Manual y Selenium registros para comprobar los datos de registro.

Cómo se puede utilizar la herramienta LogExpert para analizar registros

  1. Descarga la herramienta de https://github.com/zarunbal/LogExpertDirígete a la carpeta de descargas de LogExpert.

    La herramienta LogExpert se puede utilizar para analizar registros

  2. Abra LogExpert.exe.
  3. Haga clic en Archivo -> Abrir y navegue hasta la ruta donde se encuentra Manual.log y SeleniumLos archivos .log se almacenan. Seleccione el archivo.
  4. Seleccione la opción “Seguir la cola”.

    La herramienta LogExpert se puede utilizar para analizar registros

    Al seleccionar «Seguir al final del archivo», se habilita el seguimiento de los registros, lo que significa que LogExpert actualiza automáticamente el archivo de registro mientras se ejecuta el script. Con cualquier otro editor, como el Bloc de notas, es necesario cerrar y volver a abrir el archivo repetidamente para actualizar los registros. Con LogExpert en modo «Seguir al final del archivo», esto no es necesario.

    Las siguientes imágenes muestran la disposición de los registros.

    La herramienta LogExpert se puede utilizar para analizar registros

    La herramienta LogExpert se puede utilizar para analizar registros

Utilizando LogExpert, los registros creados por el Selenium WebDriver se puede depurar. En esta herramienta, se puede:

  • Buscar cualquier texto y expresión regular.
  • Crea marcadores y comenta sobre ellos, y también navega entre marcadores, algo que no es posible en ninguna otra herramienta.
  • Filtra los registros, busca rangos de texto y aplica otro filtro a los registros previamente filtrados.
  • Resalta diferentes líneas según ciertas palabras.

Esta herramienta también ayuda a dividir los datos en diferentes columnas.

Preguntas Frecuentes

Log4j 1.x llegó al final de su ciclo de vida en 2015 y utiliza un archivo de propiedades o XML para su configuración. Log4j 2.x ofrece un mejor rendimiento, registradores asíncronos, compatibilidad con funciones lambda y seguridad mejorada tras las actualizaciones de Log4Shell, lo que lo convierte en la opción recomendada para nuevos proyectos.

Log4j admite niveles de registro configurables, salida de archivos persistentes, copias de seguridad rotativas y patrones estructurados. System.out.println escribe solo en la consola y no se puede filtrar ni archivar. Log4j realiza Selenium Los resultados de las pruebas son más fáciles de clasificar, auditar y reproducir.

Sí. Los asistentes de IA pueden analizar grandes salidas de Log4j, agrupar fallas repetidas y descubrir patrones de causa raíz en Selenium corre. Resaltan localizadores inestables, pasos lentos y pila traces, convirtiendo las líneas de registro sin procesar en elementos de acción priorizados para los ingenieros de control de calidad.

Las plataformas de observabilidad basadas en IA ingieren flujos de Log4j, detectan anomalías en tiempo real y predicen fallos antes de que afecten a los usuarios. Los modelos de aprendizaje automático evalúan la gravedad, eliminan eventos duplicados y activan alertas inteligentes, reemplazando los flujos de trabajo manuales de grep con una monitorización proactiva.

No. LogExpert es una herramienta gratuita popular. Windows visor con seguimiento de cola y filtrado, pero las alternativas incluyen BareTail, glogg, Klogg y plataformas completas como Splunk, Graylogo la pila ELK para el análisis centralizado en múltiples máquinas.

Resumir este post con: