在并行测试执行期间,如何在硒自动化中使用log4j2日志记录常见类

时间:2019-02-06 17:59:11

标签: java logging log4j2

我正在我的测试执行框架中添加log4j2支持。我的测试并行运行,并且我为每个测试类创建单独的日志文件。但是我的所有测试类都有一些通用类,它们也会写入日志文件,但是我希望将这些日志添加到特定的测试类日志文件中。

我试图将logger对象传递给公共类并在同一个类上工作,但这看起来不太好,因为我将在公共类中有很多方法,并且不想在每个函数调用中传递logger对象。

详细说明一下,这是相同的示例图:

       BaseClass.java
      | inheritance |
Class A           Class B
(a.log)           (b.log)

A类和B类继承了BaseClass的某些功能。 ClassA有其自己的记录器,ClassB有其自己的记录器。当我从BaseClass调用某些函数时,我希望日志在相应的日志文件中继续。另外,请注意,这两个测试将并行运行。

public class A extends BaseClass{
   Logger log = LogManager.getLogger("ClassA");

   @test
   public void testA1(){
     log.info("Into Class A");
     executeDummyFunc(log);
   }
}

public class B extends BaseClass{
   Logger log = LogManager.getLogger("ClassB");

   @test
   public void testB1(){
     log.info("Into Class B");
     executeDummyFunc(log);
   }
}

public class BaseClass{

   public void executeDummyFunc(Logger log){
     log.info("Into Base Class");
   }
}

a.log:
 Into Class A
 Into Base Class
b.log
 Into Class B
 Into Base Class

如何在不将“ log”对象传递给每个BaseClass函数的情况下实现相同的结果。

抱歉,这是一个基本问题,因为我是Java新手。

谢谢!

0 个答案:

没有答案