Я не уверен, что на вопрос оригинального плаката был дан ответ, поэтому я попытаюсь немного это повторить.В Spring Batch у вас может быть несколько потоков, и вы можете захотеть вести журналы для конкретных заданий, чтобы все события для конкретного задания записывались в один файл журнала.Вам нужен регистратор, область которого напрямую связана с работой, которую вы обрабатываете.Когда работа заканчивается, регистратор (и все ссылки на регистратор) уходят.
Таким образом, когда вы отправляете Job # 1 , все события регистрируются в "job_1.log" ;когда вы отправляете Job # 2 , его события регистрируются в "job_2.log" и т. д.
В log4j, когда вы выполняете "Logger.getLogger ('mylogger') " вы говорите LogManager вывести 'mylogger' из кэша и передать его вам.Что вам действительно нужно, так это новый экземпляр регистратора, настроенный с использованием конфигурации mylogger.Весной это обычно делается с помощью прототипа bean-компонента.Каждый раз, когда вы спрашиваете контекст для 'mylogger' , вы получаете новый экземпляр.