【问题标题】:log4j issue in selenium java projectselenium java项目中的log4j问题
【发布时间】:2018-09-28 06:10:01
【问题描述】:

-Dlog4j.debug=true

如何使上述功能适用于所有班级?

我只能通过手动将其置于调试配置中来在 1 个类中运行它,但是当我去运行另一个类时它不起作用。

我希望在控制台中为所有测试类提供以下描述:

log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@5c647e05.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@5c647e05 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@5c647e05.
log4j: Using URL 
log4j: Parsing for [root] with value=[debug, console, file  ].
log4j: Level token is [debug].
log4j: Category root set to DEBUG
log4j: Parsing appender named "console".
log4j: Parsing layout options for "console".
log4j: Setting property [conversionPattern] to [%d{MM-dd-yyyy HH:mm:ss} %F %-5p [%t] %c{2} %L - %m%n].
log4j: End of parsing for "console".
log4j: Parsed "console" options.
log4j: Parsing appender named "file".
log4j: Parsing layout options for "file".
log4j: Setting property [conversionPattern] to [%d{ISO8601} %5p [%t] %c{1}:%L - %m%n].
log4j: End of parsing for "file".
log4j: Setting property [append] to [false].
log4j: Setting property [file] to [application.log].
log4j: Setting property [maxBackupIndex] to [10].
log4j: Setting property [maxFileSize] to [10mb ].
log4j: setFile called: application.log, false
log4j: setFile ended
log4j: Parsed "file" options.
log4j: Finished configuring.

【问题讨论】:

  • 能否请您扩展您的问题并详细说明?请添加更多详细信息。现在我不明白你的问题。
  • 我很抱歉刚接触这个;我添加了从控制台收到的消息

标签: java selenium log4j


【解决方案1】:

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 单位的输出。

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2017-04-10
    • 2019-01-10
    相关资源
    最近更新 更多