我正在我的测试执行框架中添加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新手。
谢谢!