log4j 是如何配置的?
要配置 log4j,我们必须决定要实现哪个 appender。相应地,appender的参数也会被设置。
我们将使用 DEBUG 级别和 RollingFileAppender
我们将做两个配置或日志,
首先:根记录器,它将以文件名写入所有系统生成的日志,即 Selenium.logs
第二:将手动命令生成的信息在代码中写入文件名-Manual.logs
布局将是 PatternLayout
根记录器
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。
file 和 dest1 是两个标识符。
“文件”用于给出将保存日志的文件名
“maxFileSize”用于配置日志文件的最大大小。当文件达到此大小时,将创建一个具有相同名称的新文件,并将旧文件名作为索引添加到其中。
“maxBackupIndex”用于配置要备份的最大文件数。
“layout”用于设置日志文件的格式。
“追加”用于设置追加功能。如果设置为 false,则每次都会创建一个新文件,而不是使用旧文件进行日志记录
如何在脚本中使用 log4j?
在代码中,我们使用了“log”作为引用变量,引用了Logger类的getLogger方法
记录器日志 = Logger.getLogger("devpinoyLogger");
使用“log”引用变量和调试方法来记录我们想要的信息。
log.debug("--信息--");
什么是 LogExpert 工具?
LogExpert 工具是为 Windows 开发的用于跟踪日志的工具
它是免费的开源日志查看器。
它是一个日志分析工具,具有搜索、过滤、书签和突出显示等多种功能
在此工具日志中,文件在打开时会自动更新
在这个工具中,我们可以在不同的选项卡中打开多个日志文件
我们也可以把cmets放在书签上,有快捷键可以在不同的书签之间导航。我们还可以看到完整的书签列表并从那里导航
该工具的快捷方式在帮助文件中提供,以便可以参考该工具。
将 Log4j 与 Selenium 一起使用的步骤
步骤 1) 在 Eclipse 中创建一个名为 log4j_demo 的新项目
Log4j 与 Selenium 教程
步骤 2) 右键单击 src -> 构建路径 -> 配置构建路径
Log4j 与 Selenium 教程
步骤 2) 单击库并添加 Log4J 库。可以从https://logging.apache.org/log4j/1.2/download.html下载
Log4j 与 Selenium 教程
步骤 3) 创建一个新文件。该文件将包含所有 log4j 配置
右键点击src -> New -> Other -> General -> File
将文件名命名为“log4j.properties”
点击完成
再创建两个文件并为其命名,例如 Selenium.logs 和 Manual.logs。这些文件将包含系统创建的所有日志和手动记录的语句
Log4j 与 Selenium 教程
第 4 步)在 log4j.properties 中复制整个配置。
Log4j 与 Selenium 教程
第五步)创建主类:
右键默认包->新建->类
给出班级名称并单击完成
Log4j 与 Selenium 教程
步骤 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计算器。输入的重量为 87 公斤,高度为 5 英尺 10 英寸。该脚本检查 SE、US 和 UK 单位的输出。