Selenium Java 项目中的 log4j 问题



-Dlog4j.debug=true

如何使上述功能适用于所有类?

我只能通过手动将其放入调试配置中在 1 个类中运行它,但是当我去运行另一个类时它不起作用。

我希望在控制台中为所有测试类提供以下描述:

log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@5c647e05.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@5c647e05 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@5c647e05.
log4j: Using URL 
log4j: Parsing for [root] with value=[debug, console, file  ].
log4j: Level token is [debug].
log4j: Category root set to DEBUG
log4j: Parsing appender named "console".
log4j: Parsing layout options for "console".
log4j: Setting property [conversionPattern] to [%d{MM-dd-yyyy HH:mm:ss} %F %-5p [%t] %c{2} %L - %m%n].
log4j: End of parsing for "console".
log4j: Parsed "console" options.
log4j: Parsing appender named "file".
log4j: Parsing layout options for "file".
log4j: Setting property [conversionPattern] to [%d{ISO8601} %5p [%t] %c{1}:%L - %m%n].
log4j: End of parsing for "file".
log4j: Setting property [append] to [false].
log4j: Setting property [file] to [application.log].
log4j: Setting property [maxBackupIndex] to [10].
log4j: Setting property [maxFileSize] to [10mb ].
log4j: setFile called: application.log, false
log4j: setFile ended
log4j: Parsed "file" options.
log4j: Finished configuring.

log4j 是如何配置的? 要配置 log4j,我们必须决定要实现哪个附加器。因此,将设置追加器的参数。

我们将使用 DEBUG 级别和 RollingFileAppender 我们将做两个配置或日志, 第一个:根记录器,它将把所有系统生成的日志写在文件名中,即Selenium.logs 第二:将代码中手动命令生成的信息写入文件名中 - Manual.logs 布局将是模式布局

根记录器

log4j.rootLogger=DEBUG,file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\ProjectXXX\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<strong>{1}</strong>:%L - %m%n
log4j.appender.file.Append=false

应用程序日志

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:\ ProjectXXX\src\Manual.logs
log4j.appender.dest1.Append=false

在上面的代码中,我们将 log4j 配置为登录两个不同的文件,分别名为 Selenium.log 和 Manual.log。

文件 和 dest1 是两个标识符。 "文件"用于提供保存日志的文件名 "maxFileSize"用于配置日志文件的最大大小。当文件达到此大小时,将创建一个具有相同名称的新文件,并将旧文件名作为索引添加到其中。 "maxBackupIndex"用于配置要备份的最大文件数。 "layout"用于设置日志文件的格式。 "追加"用于设置追加功能。如果设置为 false,则每次创建新文件而不是旧文件时都将用于日志记录 如何在脚本中使用 log4j? 在代码中,我们使用"log"作为引用变量,引用记录器类的getLogger方法。

Loggerlog = Logger.getLogger("devpinoyLogger"(;

使用"log"引用变量和调试方法来记录我们想要的信息。

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

什么是日志专家工具? 日志专家工具是Windows开发用于跟踪日志的工具 它是免费和开源的日志查看器。 它是一个日志分析工具,具有多种功能,如搜索,过滤,书签和突出显示日志 在此工具日志中,文件在打开时自动更新 在此工具中,我们可以在不同的选项卡中打开多个日志文件 我们还可以在书签上添加注释,并且有快捷键可以在不同的书签之间导航。我们还可以看到完整的书签列表并从那里导航 该工具的快捷方式在帮助文件中给出,以便可以参考该工具。 将 Log4j 与硒一起使用的步骤 步骤1(在Eclipse中创建一个名为log4j_demo的新项目

Log4j 与硒教程

步骤2(右键单击 src -> 构建路径 -> 配置构建路径

Log4j 与硒教程

步骤2(单击库并添加 Log4J 库 .您可以从 https://logging.apache.org/log4j/1.2/download.html 下载

Log4j 与硒教程

步骤3(创建一个新文件。此文件将包含所有 log4j 配置

右键单击 src -> 新建 -> 其他 -> 常规 -> 文件 将文件名指定为"log4j.properties" 点击完成 再创建两个文件并为其命名,例如Selenium.logs和Manual.logs。这些文件将包含由系统和手动记录的语句创建的所有日志

Log4j 与硒教程

步骤4(在 log4j.properties 中复制整个配置。

Log4j 与硒教程

步骤5(创建主类:

右键单击默认包 -> 新建 ->类 给出类名称,然后单击完成 Log4j 与硒教程

步骤6(将以下代码复制到主类中

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("http://healthunify.com/bmicalculator/");
log.debug("opening webiste");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
log.debug("entring 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 inchs");
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();
}
}

在上面的代码中,我们访问 http://healthunify.com/bmicalculator/and 验证 BMI 计算器。输入的重量为87KG,高度为5英尺10英寸。该脚本以 SE、美国和英国为单位检查输出。

最新更新