Log4j - вывести имя теста в файл журнала - PullRequest
0 голосов
/ 29 октября 2018

У меня есть проект Java, который использует log4j в качестве регистратора. Требуется, чтобы имя тестового набора было напечатано в файле журнала.

В одном классе несколько тестов. Проект также поддерживает параллельное выполнение. Экземпляр регистратора создается для каждого теста.

Я использовал system.Setproprty, чтобы связать мой текущий экземпляр регистратора с именем тестового примера. Вот мой файл log4j.properties: -

log4j.appender.logFileAppender.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} [%t] ${testCaseName} %5p (%F:%L) - %m%n
log4j.appender.logFileAppender.Append=false
log4j.appender.logFileAppender.file=./log/UITest.log

И переменная времени выполнения $ {testCaseName} устанавливается при создании нового экземпляра файла регистратора следующим образом: -

public Logger log; 
public synchronized Logger initializeLogger(String testName) 
    { 
    log = LoggerFactory.getLogger(testName);      
    System.setProperty("testCaseName", testName);             
    PropertyConfigurator.configure(log4jPropertiesFilePath); 
    return log; 
    } 

Вышеупомянутый метод создания экземпляра более низкого уровня вызывается в @ BeforeMethod.

В настоящее время файл регистратора печатает имя теста последнего теста в классе (в непараллельном и параллельном режиме выполнения)

Пожалуйста, помогите мне выявить проблему, из-за которой у нескольких тестовых примеров не было напечатано имя тестового набора в файле журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...