¿Qué es Log4j?
Log4j es un marco de trabajo de registro (APIS) rápido, flexible y confiable escrito en Java desarrollado a principios de 1996. Se distribuye bajo la licencia de software Apache. Log4J ha sido adaptado a los lenguajes C, C ++, C #, Perl, Python, Ruby y Eiffel. Es una herramienta utilizada para proyectos de automatización de selenio de pequeña a gran escala.
¿Por qué utilizar Log4j?
- Es una fuente abierta
- Con Log4j, es posible almacenar los detalles del flujo de nuestra automatización de selenio en un archivo o bases de datos
- Log4j se utiliza tanto para proyectos grandes como pequeños
- En Log4j, usamos declaraciones de registro en lugar de declaraciones SOPL en el código para conocer el estado de un proyecto mientras se está ejecutando.
Log4j tiene tres componentes principales
- Loggers : Se encarga de registrar la información. Para implementar registradores en un proyecto, se deben realizar los siguientes pasos:
- Cree una instancia para la clase de registrador : la clase de registrador es una utilidad basada en Java que tiene todos los métodos genéricos ya implementados para usar log4j
- Definir el nivel Log4j : principalmente hay cinco tipos de niveles de registro
- Todo: este nivel de registro registrará todo (activa todos los registros)
- DEBUG: imprime la información de depuración y es útil en la etapa de desarrollo
- INFO: imprime un mensaje informativo que destaca el progreso de la aplicación
- ADVERTENCIA: imprime información sobre el comportamiento defectuoso e inesperado del sistema.
- ERROR: mensaje de error de impresión que puede permitir que el sistema continúe
- FATAL: imprime información crítica del sistema que hace que la aplicación se bloquee
- APAGADO: sin registro
- Appenders : se utiliza para entregar LogEvents a su destino. Decide qué sucederá con la información del registro. En palabras simples, se utiliza para escribir los registros en un archivo. A continuación se muestran algunos tipos de agregadores
- ConsoleAppender registra la salida estándar
- El appender de archivos imprime registros en algún archivo
- Agregador de archivo rodante a un archivo con el tamaño máximo
Nota: En las propiedades de log4j podemos llamar a appender con cualquier nombre. También hay otros apéndices, pero nos limitaremos a estos pocos.
- Diseños : se encarga de formatear la información de registro en diferentes estilos.
La clase Logger proporciona diferentes métodos para manejar las actividades de registro. Proporciona dos métodos estáticos para obtener un objeto registrador.
Registrador estático público getRootLogger ()Logger estático público getLogger (nombre de cadena)
¿Cómo está configurado log4j?
Para configurar log4j tenemos que decidir qué appender implementar. En consecuencia, se establecerán los parámetros del appender.
- Usaremos el nivel DEBUG y RollingFileAppender
- Haremos dos configuraciones o logs,
- Primero: registrador raíz, que escribirá todos los registros generados por el sistema en el nombre del archivo, es decir, Selenium.logs
- Segundo: escribirá la información generada por los comandos manuales en código en el nombre del archivo: Manual.logs
- El diseño será PatternLayout
# Registrador de raíces
log4j.rootLogger = DEBUG, archivolog4j.appender.file = org.apache.log4j.RollingFileAppenderlog4j.appender.file.File = D: \\ Guru99 \\ src \\ Selenium.logslog4j.appender.file.maxFileSize = 900KBlog4j.appender.file.maxBackupIndex = 5log4j.appender.file.layout = org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern =% d {ABSOLUTE}% 5p% c {1} :% L -% m% nlog4j.appender.file.Append = false
# Registros de aplicaciones
log4j.logger.devpinoyLogger = DEPURAR, dest1log4j.appender.dest1 = org.apache.log4j.RollingFileAppenderlog4j.appender.dest1.maxFileSize = 900KBlog4j.appender.dest1.maxBackupIndex = 6log4j.appender.dest1.layout = org.apache.log4j.PatternLayoutlog4j.appender.dest1.layout.ConversionPattern =% d {dd / MM / aaaa HH: mm: ss}% c% m% nlog4j.appender.dest1.File = D: \\ Guru99 \\ src \\ Manual.logslog4j.appender.dest1.Append = false
En el ejemplo anterior, hemos configurado log4j para iniciar sesión en dos archivos diferentes denominados Selenium.log y Manual.log.
- file y dest1 son los dos identificadores.
- "Archivo" se utiliza para dar el nombre del archivo en el que se guardarán los registros.
- "maxFileSize" se utiliza para configurar el tamaño máximo del archivo de registro. Cuando el archivo alcance este tamaño, se creará un archivo nuevo con el mismo nombre y el nombre del archivo anterior se agregará como índice.
- "maxBackupIndex" se utiliza para configurar el número máximo de archivos a respaldar.
- "diseño" se utiliza para establecer el formato del archivo de registro.
- "Agregar" se usa para configurar la función de agregar. Si se establece en falso, cada vez que se cree un archivo nuevo en lugar del archivo antiguo, se utilizará para el registro.
¿Cómo se usa log4j en el script?
En el código, hemos utilizado "log" como una variable de referencia que hace referencia al método getLogger de la clase Logger.
Logger log = Logger.getLogger ("devpinoyLogger");
Utilice la variable de referencia "log" y el método de depuración para registrar la información que queremos.
log.debug ("- información--");
¿Qué es una herramienta LogExpert?
- La herramienta LogExpert es una herramienta para Windows desarrollada para seguir los registros
- Es un visor de registros de código abierto y gratuito.
- Es una herramienta de análisis de registros con múltiples funciones como buscar, filtrar, marcar y resaltar los registros.
- En los registros de esta herramienta, los archivos se actualizan automáticamente cuando se abren
- En esta herramienta, podemos abrir varios archivos de registro en diferentes pestañas
- También podemos poner comentarios en los marcadores, y existe la tecla de método abreviado para navegar entre diferentes marcadores. También podemos ver la lista completa de marcadores y navegar desde allí
- Los accesos directos de la herramienta se proporcionan en el archivo de ayuda para que puedan remitirse a la herramienta.
Pasos para usar Log4j con Selenium
Paso 1) En Eclipse cree un nuevo proyecto con el nombre log4j_demo
Paso 2) Haga clic derecho en src -> Build Path -> Configure Build Path
Paso 2) Haga clic en Bibliotecas y Agregar biblioteca Log4J. Puede descargarlo desde https://logging.apache.org/log4j/1.2/download.html
Paso 3) Crea un nuevo archivo. Este archivo incluirá toda la configuración de log4j
- Haga clic derecho en src -> Nuevo -> Otro -> General -> Archivo
- Asigne el nombre del archivo como "log4j.properties"
- Haga clic en Finalizar
Cree dos archivos más y asígneles nombres como Selenium.logs y Manual.logs. Estos archivos contendrán todos los registros creados por el sistema y las declaraciones registradas manualmente
Paso 4) En log4j.properties copie toda la configuración.
Paso 5) Cree la clase principal:
- Haga clic derecho en el paquete predeterminado -> Nuevo -> Clase
- Dé el nombre de la clase y haga clic en finalizar
Paso 6) Copie el siguiente código en la clase principal
import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;importar org.openqa.selenium.firefox.FirefoxDriver;import org.apache.log4j.Logger;public class LoggingDemo {/ *** @param argumentos* /public static void main (String [] args) {// TODO código auxiliar de método generado automáticamenteControlador WebDriver = nuevo FirefoxDriver ();Logger log = Logger.getLogger ("devpinoyLogger");driver.get ("http://healthunify.com/bmicalculator/");log.debug ("abriendo sitio web");driver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);log.debug ("peso de entrada");driver.findElement (By.name ("wg")). sendKeys ("87");log.debug ("seleccionar kilogramos");driver.findElement (By.name ("opt1")). sendKeys ("kilogramos");log.debug ("seleccionando altura en pies");driver.findElement (By.name ("opt2")). sendKeys ("5");log.debug ("seleccionando altura en pulgadas");driver.findElement (By.name ("opt3")). sendKeys ("10");log.debug ("Hacer clic en calcular");driver.findElement (By.name ("cc")). click ();log.debug ("Obteniendo valor SIUnit");String SIUnit = driver.findElement (By.name ("si")). GetAttribute ("valor");log.debug ("Obteniendo valor USUnit");String USUnit = driver.findElement (By.name ("nosotros")). GetAttribute ("valor");log.debug ("Obteniendo el valor UKUnit");String UKUnit = driver.findElement (By.name ("uk")). GetAttribute ("valor");log.debug ("Obteniendo descripción general");String note = driver.findElement (By.name ("desc")). GetAttribute ("valor");System.out.println ("SIUnit =" + SIUnit);System.out.println ("USUnit =" + USUnit);System.out.println ("UKUnit =" + UKUnit);System.out.println ("nota =" + nota);driver.quit ();}}
En el código anterior, visitamos http://healthunify.com/bmicalculator/ y verificamos la calculadora de IMC. El peso ingresado es de 87 kg y la altura es de 5 pies y 10 pulgadas. La secuencia de comandos verifica la salida en unidades del SE, EE. UU. Y Reino Unido.
Usando Logger.getLogger ("devpinoyLogger") creamos registros a nivel del sistema
Usando el método log.debug almacenamos datos en Manual.log
Paso 7) Ejecute el script. Abra la ubicación de los registros manuales y de selenio para verificar los datos de registro.
Cómo se puede utilizar la herramienta LogExpert para analizar registros
- Descargue la herramienta desde http://logexpert.codeplex.com/. Vaya a la carpeta de descarga de LogExpert
- Abra LogExpert.exe
- Haga clic en Archivo -> Abrir y busque la ruta donde se almacenan los archivos Manual.log y Selenium.log. Seleccionar el archivo
- Seleccione la opción "Seguir cola"
La selección de la opción Seguir cola habilita el seguimiento de registros, lo que significa que LogExpert actualiza automáticamente el archivo de registro cuando el script está en fase de ejecución. Si usamos cualquier otro editor como el bloc de notas, entonces tenemos que cerrar y volver a abrir el archivo una y otra vez para actualizar los registros. Pero con ExpertTool en modo Follow Tail esto no es necesario.
Las siguientes imágenes muestran el diseño de los registros.
Usando la herramienta LogExpert, uno puede depurar los registros creados por el controlador web de selenio como en esta herramienta una vez que puede
- buscar cualquier texto y expresión regular,
- crear marcadores y comentarlos y también puede navegar entre marcadores que no es posible en ninguna otra herramienta,
- Filtre los registros y busque rangos de texto y también puede aplicar otro filtro a los registros filtrados anteriores,
- Resalte una línea diferente basada en algunas palabras determinadas.
Esta herramienta también ayuda a dividir los datos en diferentes columnas.