Log4j 中 Selenium:如何下载和使用 Log4j 属性文件
Log4j 是什么 Selenium?
Log4j 是一个用以下语言编写的快速、灵活且可靠的日志记录框架 (API) Java 于 1996 年初开发。它发布于 阿帕奇 软件许可证。Log4J 已移植到 C、 C++,C#, Perl的, Python、Ruby 和 Eiffel 语言。它是一种用于从小到大规模 Selenium 自动化项目。
为什么使用 Log4j?
- 它是一个开源
- 使用 Log4j,可以存储我们的 Selenium 文件或数据库中的自动化
- Log4j 适用于大型和小型项目
- 在 Log4j 中,我们在代码中使用日志语句而不是 SOPL 语句来了解项目执行时的状态
Log4j 组件
记录器
它负责记录信息。要将记录器实现到项目中,需要执行以下步骤
为记录器类创建实例
Logger 类是一个 Java- 实用程序,已实现使用 log4j 的所有通用方法
定义 Log4j 级别
主要有五种日志级别
- 全部 – 此级别的日志记录将记录所有内容(打开所有日志)
- DEBUG – 打印调试信息,在开发阶段很有帮助
- INFO – 打印信息消息,突出显示应用程序的进度
- WARN——打印有关故障和意外系统行为的信息。
- ERROR – 打印错误信息,可能允许系统继续
- FATAL – 打印导致应用程序崩溃的系统关键信息
- 关闭 – 无记录
附加程序
它用于将 LogEvent 传递到目的地。它决定如何处理日志信息。简而言之,它用于将日志写入文件。以下是几种类型的 Appender
- ConsoleAppender 记录到标准输出
- 文件附加器将日志打印到某个文件
- 滚动文件附加到最大大小的文件
请注意: 在 log4j 属性中,我们可以用任意名称调用 appender。还有其他 appender,但我们将仅限于这几个。
布局
它负责以不同的风格格式化日志信息。
Logger 类提供了不同的方法来处理日志记录活动。它提供了两种静态方法来获取 Logger 对象。
Public static Logger getRootLogger() Public static Logger getLogger(String name)
log4j 如何配置?
要配置 log4j,我们必须决定要实现哪个附加器。相应地,将设置附加器的参数。
- 我们将使用 DEBUG 级别和 RollingFileAppender
- 我们将进行两项配置或日志,
- 第一个:根记录器,它将把所有系统生成的日志写入文件名中,即 Selenium.日志
- 第二:将代码中手动命令生成的信息写入文件名-Manual.logs
#根记录器
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<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:\\ Guru99\\src\\Manual.logs log4j.appender.dest1.Append=false
在上面的例子中,我们配置了 log4j 来记录两个不同的文件,文件名分别为 Selenium.log 和 Manual.log。
- file 和 dest1 是两个标识符。
- “文件”用于指定将保存日志的文件名
- “maxFileSize” 用于配置日志文件的最大大小。当文件达到此大小时,将创建一个同名的新文件,并将旧文件名作为索引添加到其中。
- “maxBackupIndex”用于配置需要备份的最大文件数。
- “layout”用于设置日志文件的格式。
- “Append” 用于设置追加功能。如果设置为 false,则每次都会创建一个新文件,而不是使用旧文件进行记录
如何在脚本中使用 log4j?
在代码中,我们使用“log”作为引用变量,引用 Logger 类的 getLogger 方法
Logger log = Logger.getLogger("devpinoyLogger");
使用“log”引用变量和调试方法来记录我们想要的信息。
log.debug("--information--");
什么是 LogExpert 工具?
- LogExpert 工具是一款 Windows 开发用于跟踪日志
- 它是免费的开源日志查看器。
- 它是一个日志分析工具,具有搜索、过滤、书签和突出显示日志等多种功能
- 在此工具日志中,文件在打开时会自动更新
- 在这个工具中,我们可以在不同的选项卡中打开多个日志文件
- 我们还可以对书签发表评论,并且有快捷键可以在不同的书签之间导航。我们还可以看到完整的书签列表并从那里导航
- 帮助文件中给出了该工具的快捷方式,以便可以参考该工具。
如何在 Selenium
步骤1) In Eclipse 创建一个名为log4j_demo的新项目
步骤2) 右键点击 src -> 构建路径 -> 配置构建路径
步骤3) 单击“Libraries”并添加 Log4J Library。您可以从以下位置下载 https://logging.apache.org/log4j/1.2/download.html
步骤4) 创建一个新文件。此文件将包含所有 log4j 配置
- 右键单击 src->新建->其他->常规->文件
- 将文件名命名为“log4j.properties”
- 单击“完成”
再创建两个文件并为其命名,例如 Selenium.logs 和 Manual.logs。这些文件将包含系统创建的所有日志和手动记录的语句
步骤5) 在 log4j.properties 中复制整个配置。
步骤6) 创建主类:
- 右键单击默认包 -> 新建 -> 类
- 输入班级名称并点击完成
步骤7) 将以下代码复制到主类中
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 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(); } }
在上面的代码中,我们访问 https://healthunify.com/bmicalculator/并验证 BMI 计算器。输入的体重为 87KG,身高为 5 英尺 10 英寸。脚本检查 SE、US 和 UK 单位的输出。
使用 Logger.getLogger(“devpinoyLogger”) 我们创建系统级日志
使用 log.debug 方法我们将数据存储到 Manual.log 中
步骤8) 运行脚本。打开 Manual 的位置并 Selenium 日志检查日志数据。
如何使用 LogExpert 工具分析日志
- 从下载工具 https://github.com/zarunbal/LogExpert . 前往 LogExpert 下载文件夹
- 打开LogExpert.exe
- 单击文件 -> 打开并浏览到 Manual.log 和 Selenium.log 文件已存储。选择文件
- 选择“跟随尾部”选项
选择跟踪选项可启用日志跟踪,这意味着 LogExpert 会在脚本执行阶段自动更新日志文件。如果我们使用任何其他编辑器(如记事本),则必须一次又一次地关闭并重新打开文件以更新日志。但使用跟踪模式的 ExpertTool 则不需要这样做。
下图显示了日志的布局
使用 LogExpert 工具,可以调试 selenium webdriver 创建的日志,就像在这个工具中一样
- 搜索任何文本和正则表达式,
- 创建书签并对其进行评论,还可以在书签之间导航,这是其他任何工具都无法实现的,
- 过滤日志并搜索文本范围,还可以将另一个过滤器应用于先前过滤的日志,
- 根据某些特定的词语突出显示不同的行。
该工具还有助于将数据分成不同的列。