Я добавляю поддержку log4j2 в мою среду выполнения теста.Мои тесты выполняются параллельно, и я создаю отдельный файл журнала для каждого тестового класса.Но есть некоторые общие классы, которые используются всеми моими тестовыми классами и также записывают в файл журнала, но я хочу, чтобы эти журналы были добавлены в файлы журналов определенного тестового класса.
Я попытался передать объект регистратора вобщий класс и работать над ним, но это не выглядит хорошо, так как у меня будет много методов в общем классе, и я не хочу передавать объект регистратора при каждом вызове функции.
Чтобы уточнить, вот примердиаграмма для того же:
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.
Спасибо!