Как log4j может быть реализован в многопоточной среде, разработанной с использованием техники ExecutorService.
Подробная информация:
Мы берем лист Excel в качестве входных данных, перечисляем задачи в листе Excel, делим список на несколько небольших списков в зависимости от количества экземпляров, наконец запускаем задачи из каждого подсписка в разных экземплярах потоков. Каждый экземпляр потока будет использовать шаблон команды и последовательно выполнять все задачи, представленные в списке.
Требуется:
Как мы можем добавить все журналы в один файл, а также консоль в последовательном порядке, так что журналы из потока-1 должны печататься сначала, аналогично до конца.
Реализация уже опробована:
MDC - не удалось правильно реализовать.
MDC - Ссылка 1
MDC - Ссылка 2
try {
ExecutorService executor = Executors.newFixedThreadPool(inNoOfInstances);
for (int i = 0; i < inNoOfInstances; i++) {
List<LinkedHashMap<String, String>> subList = newPartitionList.get(i);
Runnable runner = new TaskRunner(subList, _userName, _passWord, _dbUsername, _dbPassword, globalScopeMap, scope,i);
executor.execute(runner);
Thread.sleep(1000);
}
executor.shutdown();
executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
while (!executor.isTerminated()) {
}