带Selenium的Log4j教程:下载、安装、使用和示例

Log4j是什么?

Log4j是一个快速、灵活和可靠的日志记录框架(API),它是用Java语言开发于1996年初。它在阿帕奇软件许可证。Log4J已经移植到C、C++、C#、Perl,Python,Ruby和Eiffel语言。它是一个用于小型到大型Selenium自动化项目的工具。

为什么使用Log4j?

  • 它是开放源码的
  • 使用Log4j,可以将Selenium Automation的流程详细信息存储在文件或数据库中
  • Log4j既可用于大型项目,也可用于小型项目
  • 在Log4j中,我们在代码中使用LOG语句而不是SOPL语句来了解项目执行时的状态

Log4j有三个主要组件

Log4j with Selenium Tutorial
Log4j with Selenium Tutorial

1.Loggers:负责记录信息。要将记录器实现到项目中,需要执行以下步骤-

创建记录器类的实例:Logger类是一个基于Java的实用程序,它已经实现了使用log4j的所有泛型方法 定义Log4j级别 :主要有五种日志级别

1. All-此级别的日志记录将记录所有内容(它打开所有日志) 
2. DEBUG -打印调试信息,对开发阶段有帮助 
3. INFO -打印突出显示应用程序进度的信息性消息 
4. WARN -打印有关故障和意外系统行为的信息。 
5. ERROR -打印可能允许系统继续的错误消息 
6. FATAL-打印导致应用程序崩溃的系统关键信息 
7. OFF -不记录 

2.Appenders:用于将LogEvent投递到目的地。以下是几种类型的附加器

1. ConsoleAppender将日志记录到标准输出 
2. 文件附加器将日志打印到某个文件 
3. 将文件附加器滚动到具有最大大小的文件 

注意:在log4j属性中,我们可以用任何名称调用附加器。还有其他附加器,但我们将仅限于这几个。

3.Layouts:负责格式化不同样式的日志信息。

Logger类提供不同的方法来处理日志记录活动。它提供了两个静态方法来获取记录器对象。

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

log4j是如何配置的?

要配置log4j,我们必须决定实现哪个附加器。相应地,将设置附加器的参数。

  • 我们将使用调试级别和RollingFileAppender
  • 我们将执行两个配置或日志,

    • 首先:根记录器,它将所有系统生成的日志写入文件名,即Selenium.logs
    • 第二:将代码中的手动命令生成的信息写入文件名-Manual.logs
  • 布局将为PatternLayout

#根记录器

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是两个标识符。
  • “File”用于指定要保存日志的文件名
  • maxFileSize用于设置日志文件的最大大小。当文件达到此大小时,将创建一个同名的新文件,旧文件名将作为索引添加到该文件中。
  • maxBackupIndex用于设置最大备份文件数。
  • Layout用于设置日志文件的格式。
  • append用于设置append函数。如果将其设置为False,则每次创建新文件时都会使用新文件而不是旧文件进行日志记录

如何在脚本中使用log4j?

在代码中,我们使用“log”作为引用变量,引用Logger类的getLogger方法

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

使用“log”引用变量和debug方法来记录我们需要的信息。

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

什么是LogExpert工具?

  1. LogExpert工具是为Windows开发的用于跟踪日志的工具
  2. 它是免费的开源日志查看器。
  3. 这是一个日志分析工具,具有多种功能,如搜索、过滤、添加书签和突出显示日志
  4. 在此工具日志中,文件在打开时会自动更新
  5. 在该工具中,我们可以在不同的选项卡中打开多个日志文件
  6. 我们还可以在书签上添加注释,并且有在不同书签之间导航的快捷键。我们还可以查看完整的书签列表并从那里导航
  7. 工具的快捷方式在帮助文件中提供,以便参考工具。

将Log4j与Selenium一起使用的步骤

步骤1) 在Eclipse中,创建一个名为log4j_demo的新项目

Log4j with Selenium Tutorial
Log4j with Selenium Tutorial

步骤2) 右键单击src->Build Path->Configure Build Path

Log4j with Selenium Tutorial
Log4j with Selenium Tutorial

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

Log4j with Selenium Tutorial
Log4j with Selenium Tutorial

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

  1. 右键单击src->New->Other->General->File
  2. 将文件名指定为“log4j.properties”
  3. 单击“Finish”(完成)

再创建两个文件,并将它们命名为Selenium.logs和Manual.logs。这些文件将包含由SYSTEM语句和手动记录的语句创建的所有日志

Log4j with Selenium Tutorial
Log4j with Selenium Tutorial

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

Log4j with Selenium Tutorial
Log4j with Selenium Tutorial

步骤5) 创建主类:

  1. 右键单击Default Package->New->Class
  2. 给出类名,然后单击Finish
Log4j with Selenium Tutorial
Log4j with Selenium Tutorial

步骤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/并验证BMI计算器。

使用log.debug方法将数据存储到Manual.log中

步骤7) 运行脚本。打开手动和Selenium日志的位置以检查日志记录数据。

如何使用LogExpert工具分析日志

  1. 从下载该工具http://logexpert.codeplex.com/。转到LogExpert下载文件夹
Log4j with Selenium Tutorial
Log4j with Selenium Tutorial
  1. 打开LogExpert.exe

  2. 单击File->Open并浏览至存储Manual.log和Selenium.log文件的路径。选择文件
  3. 选择“跟随尾巴”选项

Log4j with Selenium Tutorial
Log4j with Selenium Tutorial

选择Follow Tail选项将启用日志尾部,这意味着LogExpert会在脚本处于执行阶段时自动更新日志文件。但是在ExpertTool处于跟随尾部模式时,这不是必需的。

下图显示了日志的布局

Log4j with Selenium Tutorial
Log4j with Selenium Tutorial
Log4j with Selenium Tutorial
Log4j with Selenium Tutorial

使用LogExpert工具,用户可以像在此工具中一样调试Selenium Webdriver创建的日志

  • 搜索任何文本和正则表达式,
  • 创建书签并对其进行注释,还可以在书签之间导航,这在任何其他工具中都是不可能的,
  • 过滤搜索日志并搜索文本范围,并且还可以将另一过滤应用于先前过滤的日志,
  • 根据某些特定的单词突出显示不同的行。

此工具还有助于将数据分区到不同的列。

IT赶路人

专注IT知识分享