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 组件

Log4j 组件

记录器

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

为记录器类创建实例

Logger 类是一个 Java- 实用程序,已实现使用 log4j 的所有通用方法

定义 Log4j 级别

主要有五种日志级别

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

附加程序

它用于将 LogEvent 传递到目的地。它决定如何处理日志信息。简而言之,它用于将日志写入文件。以下是几种类型的 Appender

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

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

布局

它负责以不同的风格格式化日志信息。

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

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

log4j 如何配置?

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

  • 我们将使用 DEBUG 级别和 RollingFileAppender
  • 我们将进行两项配置或日志,
  • 第一个:根记录器,它将把所有系统生成的日志写入文件名中,即 Selenium.日志
  • 第二:将代码中手动命令生成的信息写入文件名-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 是两个标识符。
    • “文件”用于指定将保存日志的文件名
    • “maxFileSize” 用于配置日志文件的最大大小。当文件达到此大小时,将创建一个同名的新文件,并将旧文件名作为索引添加到其中。
    • “maxBackupIndex”用于配置需要备份的最大文件数。
    • “layout”用于设置日志文件的格式。
    • “Append” 用于设置追加功能。如果设置为 false,则每次都会创建一个新文件,而不是使用旧文件进行记录

    如何在脚本中使用 log4j?

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

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

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

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

    什么是 LogExpert 工具?

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

    如何在 Selenium

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

    使用 Log4j Selenium

    步骤2) 右键点击 src -> 构建路径 -> 配置构建路径

    使用 Log4j Selenium

    步骤3) 单击“Libraries”并添加 Log4J Library。您可以从以下位置下载 https://logging.apache.org/log4j/1.2/download.html

    使用 Log4j Selenium

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

    1. 右键单击 src->新建->其他->常规->文件
    2. 将文件名命名为“log4j.properties”
    3. 单击“完成”

    再创建两个文件并为其命名,例如 Selenium.logs 和 Manual.logs。这些文件将包含系统创建的所有日志和手动记录的语句

    使用 Log4j Selenium

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

    使用 Log4j Selenium

    步骤6) 创建主类:

    1. 右键单击默认包 -> 新建 -> 类
    2. 输入班级名称并点击完成

    使用 Log4j Selenium

    步骤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 工具分析日志

    1. 从下载工具 https://github.com/zarunbal/LogExpert . 前往 LogExpert 下载文件夹

      LogExpert 工具可用于分析日志

    2. 打开LogExpert.exe
    3. 单击文件 -> 打开并浏览到 Manual.log 和 Selenium.log 文件已存储。选择文件
    4. 选择“跟随尾部”选项

      LogExpert工具可用于分析日志

      选择跟踪选项可启用日志跟踪,这意味着 LogExpert 会在脚本执行阶段自动更新日志文件。如果我们使用任何其他编辑器(如记事本),则必须一次又一次地关闭并重新打开文件以更新日志。但使用跟踪模式的 ExpertTool 则不需要这样做。

      下图显示了日志的布局

      LogExpert工具可用于分析日志

      LogExpert工具可用于分析日志

    使用 LogExpert 工具,可以调试 selenium webdriver 创建的日志,就像在这个工具中一样

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

    该工具还有助于将数据分成不同的列。