如何在[此处应填写具体内容,例如:]中使用Log4j Selenium?

⚡ 智能摘要

Log4j 中 Selenium 快速、灵活 Java 这是一个日志框架,用于记录自动化脚本的流程细节。它支持多种日志级别、附加器和布局,并且可以与 LogExpert 完美配合,用于分析生成的日志文件。

  • 🔘 组件: Log4j 由日志记录器 (Logger)、附加器 (Appender) 和布局 (Layout) 组成,它们共同捕获、路由和格式化日志事件。 Selenium 自动化项目。
  • ☑️ 日志级别: 七个级别(全部、调试、信息、警告、错误、致命、关闭)控制脚本执行和调试期间记录的详细信息量。
  • 附加器: ConsoleAppender、FileAppender 和 RollingFileAppender 决定日志条目是发送到控制台、静态文件还是滚动文件集。
  • 🧪 配置: log4j.properties 文件定义了根日志记录器和应用程序日志记录器、文件路径、最大文件大小、备份索引和 PatternLayout 格式规则。
  • 🛠️ LogExpert Viewer: 免费 LogExpert 工具的尾部 Selenium 实时查看手动日志文件,支持筛选、书签、高亮显示和多标签页查看。

如何在[此处应填写具体内容,例如:]中使用Log4j Selenium

Log4j 是什么 Selenium?

Log4j 是一个快速、灵活且可靠的日志框架(API),它使用编程语言编写。 Java 并于 1996 年初开发完成。它以以下名义分发: Apache (阿帕奇) 软件许可。Log4j 已移植到 C 语言, C++,C#, Perl的, Python它支持 Ruby 和 Eiffel 语言,是一款适用于从小规模到大规模开发的工具。 Selenium 自动化项目。

为什么使用 Log4j?

Log4j 为以下方面提供了诸多实际好处: Selenium 项目:

  • 它是开源的。
  • 使用 Log4j,可以存储流程的详细信息。 Selenium 文件或数据库中的自动化操作。
  • Log4j 既适用于大型项目,也适用于小型项目。
  • 在 Log4j 中,日志语句取代了代码中的 System.out.println 语句,以便在项目执行时了解其状态。

Log4j 组件

Log4j 组件

记录器

日志记录器负责记录信息。要在项目中实现日志记录器,需要执行以下步骤。

创建 Logger 类的实例

Logger 类是一个 Java这是一个基于 Log4j 的实用程序,其中已经实现了使用 Log4j 的所有通用方法。

定义 Log4j 级别

日志级别主要有七种:

  1. 全部 – 此级别的日志记录会记录所有内容(它会启用所有日志)。
  2. DEBUG – 打印调试信息,对开发阶段很有帮助。
  3. INFO – 打印信息消息,突出显示应用程序的进度。
  4. 警告 – 打印有关系统故障和意外行为的信息。
  5. 错误 – 打印错误信息,以便系统能够继续运行。
  6. 致命错误 – 打印系统关键信息,导致应用程序崩溃。
  7. 关闭 - 不记录日志。

附加程序

Appender 用于将 LogEvents 传递到目标位置。它决定如何处理日志信息。简单来说,它将日志写入文件。以下是一些 Appender 的类型:

  1. ConsoleAppender 将日志输出到标准输出。
  2. FileAppender 将日志打印到指定文件。
  3. RollingFileAppender 会将数据写入一个具有最大容量的文件。

注意: 在 log4j.properties 文件中,appender 可以使用任何名称调用。虽然还有其他 appender,但这里只重点介绍这几个。

布局

布局负责以不同样式格式化日志信息。

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

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

Log4j是如何配置的?

要配置 Log4j,首先要决定要实现哪个 appender。然后根据这个 appender 设置相应的参数。

  • 使用 DEBUG 级别和 RollingFileAppender。
  • 创建两个配置或日志:
    • 首先:一个根日志记录器,它会将所有系统生成的日志写入一个名为“logger”的文件。 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{1}:%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”引用变量和debug方法来记录所需信息。

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

什么是 LogExpert 工具?

LogExpert是一款具有以下特点的工具:

  1. LogExpert 是一个 Windows 开发用于跟踪日志的工具。
  2. 它是一款免费开源的日志查看器。
  3. 它是一款日志分析工具,具有搜索、筛选、收藏和突出显示日志等多种功能。
  4. 使用此工具打开日志文件时,日志文件会自动更新。
  5. 可以在不同的标签页中打开多个日志文件。
  6. 您可以为书签添加评论,并使用快捷键在不同书签之间切换。您还可以查看完整的书签列表。
  7. 该工具的快捷键在帮助文件中给出,以便根据需要进行参考。

如何在 Selenium

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

使用 Log4j Selenium

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

使用 Log4j Selenium

步骤3) 点击“库”,添加 Log4j 库。您可以从以下位置下载该库: 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 website");
         driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
         log.debug("entering 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 inches");
         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计算器。输入的体重为87公斤,身高为5英尺10英寸。脚本会检查以国际单位制(SI)、美制单位和英制单位输出的结果。

脚本使用 `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日志文件已保存。请选择该文件。
  4. 选择“跟随尾巴”选项。

    LogExpert工具可用于分析日志

    选择“跟踪日志尾部”即可启用日志跟踪功能,这意味着 LogExpert 会在脚本执行期间自动更新日志文件。使用其他编辑器(例如记事本)时,需要反复关闭并重新打开文件才能更新日志。而使用 LogExpert 的“跟踪日志尾部”模式则无需此操作。

    以下图片显示了日志的布局。

    LogExpert工具可用于分析日志

    LogExpert工具可用于分析日志

使用 LogExpert,可以查看由以下方式创建的日志: Selenium WebDriver 可以进行调试。使用此工具,可以:

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

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

常见问题

Log4j 1.x 已于 2015 年停止维护,它使用属性文件或 XML 文件进行配置。Log4j 2.x 在 Log4Shell 补丁之后提供了更佳的性能、异步日志记录器、Lambda 支持和更高的安全性,因此是新项目的推荐选择。

Log4j 支持可配置的日志级别、持久化文件输出、滚动备份和结构化模式。System.out.println 仅写入控制台,无法进行过滤或归档。Log4j 使 Selenium 测试结果更容易进行分类、审核和重现。

是的。AI助手可以解析大量的Log4j输出,对重复出现的故障进行聚类,并找出根本原因模式。 Selenium 跑步。它们突出了不稳定的定位器、缓慢的步伐和堆叠。 traces,将原始日志行转化为QA工程师需要优先处理的任务项。

AI驱动的可观测性平台能够摄取Log4j数据流,实时检测异常,并在故障影响用户之前进行预测。机器学习模型可以对故障严重程度进行评分,去除重复的噪声事件,并触发智能警报,从而以主动监控取代手动grep工作流程。

不。LogExpert 是一款流行的免费软件。 Windows 它提供尾部跟踪和过滤功能,但其他替代方案包括 BareTail、glogg、Klogg 以及 Splunk 等完整平台。 Graylog或者使用 ELK 技术栈进行跨多台机器的集中式分析。

总结一下这篇文章: