当前位置: 首页 > 知识库问答 >
问题:

如何在Selenium webDrive中使用log4j打印日志

韩喜
2023-03-14

环境:Java、Selenium webdriver、Maven、testNG、Log4J、Eclipse

  1. XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestAll" parallel = "tests" thread-count = "2">

 <test name="postivelogintest_IE">
 <parameter name="browser" value="ie"/>

 <classes>
 <class name="com.dice.LoginTest">
 <methods>
 <include name="DataDrivenpositiveLoginTest"/>
 </methods>
 </class>
 </classes>
 </test>


 <test name="postivelogintest_CH">
 <parameter name="browser" value="ch"/>

 <classes>
 <class name="com.dice.LoginTest">
 <methods>
 <include name="DataDrivenpositiveLoginTest"/>
 </methods>
 </class>
 </classes>
 </test>


</suite>
package com.diceBase;
import org.apache.log4j.Logger;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Parameters;




public class BaseTest {
 protected WebDriver driver;
 protected Logger log;

    @Parameters ({"browser"})
 @BeforeMethod
 protected void MethodSetup(String browser){
 log.info("method set up"); // line 16
 driver = BrowserFactory.getDriver(browser);
 }

 @AfterMethod
 protected void TearDown(){
 log.info("method tear down");


 try {
 Thread.sleep(5000);
 driver.quit();
 } catch (Exception e) {
 }
 }
}

我添加了log4j。src/main/resources下的属性。

在基本测试中。java,我在导入log4j后添加了两行。

日志信息(“方法设置”);

日志信息(“方法拆除”);

我的目标是能够使用日志。了解整个项目。在此之前,我只想通过在basetest类中导入log4j logger来测试它,看看它是否有效。如果可行的话,我可以在整个项目中导入log4j。

共有1个答案

卫飞
2023-03-14

BaseTest中的log变量。java尚未分配logger类的对象(https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Logger.html) . 由于没有为变量log分配任何对象,因此它会引发空指针异常。所以,请创建logger类的对象来创建可变日志

 类似资料:
  • 当我在Wildfly10上部署war时,Log4j日志不会打印。1.0.最终的不过,它与Tomcat配合得很好。 我在网上发现Wildfly使用log4j,所以我在jboss部署结构中排除了log4j。下面的xml避免了依赖冲突,但没有运气。 下面是我log4.properties档案 下面是我的pom。xml依赖关系 下面是我部署战争时得到的错误日志。 我正在尝试运行独立的完整ha。xml

  • 问题内容: 我的应用程序有一个自制的日志记录类,我将在后台使用log4j进行迁移。但是,由于我正在使用homebrew类将应用程序的其余日志记录语句传递给log4j,因此输出语句被记录为来自包装类而不是源类。 除了为每个log语句创建新的org.apache.log4j.Logger实例之外,是否有办法确保显示“正确的”源?我也尝试过使用Logger.log(String callerFQCN,P

  • 我有一个java项目,它使用log4j作为记录器。要求在日志文件中打印测试用例名称。 一个类中有多个测试,该项目也支持并行执行。为每个测试创建一个记录器实例。 我使用system. Setproprty将我当前的记录器实例与测试用例名称相关联。以下是我的log4j.properties文件:- 并在创建logger文件的新实例时设置运行时变量${testCaseName},如下所示:- 上面的lo

  • 本文向大家介绍如何使用JSP Expression打印日期?,包括了如何使用JSP Expression打印日期?的使用技巧和注意事项,需要的朋友参考一下 以下示例显示了浏览器上的JSP Expression打印日期- 上面的代码将产生以下结果-

  • 如何使用项目中的log4j属性文件在日志文件中追加system.out.println()和system.err.println()。 我面临一个错误

  • 本文向大家介绍在Spring Boot中如何使用log4j记录日志,包括了在Spring Boot中如何使用log4j记录日志的使用技巧和注意事项,需要的朋友参考一下 前言 Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置