У меня есть класс JAVA, который запускает различные потоки с уникальными идентификаторами.Каждый поток должен войти в уникальный файл журнала, названный в честь ID.log.
Поскольку я получаю уникальный идентификатор только во время выполнения, мне нужно настроить Log4J программно:
// Get the jobID
myJobID = aJobID;
// Initialize the logger
myLogger = Logger.getLogger(myJobID);
FileAppender myFileAppender;
try
{
myFileAppender = new FileAppender(new SimpleLayout(), myJobID + ".log", false);
BasicConfigurator.resetConfiguration();
BasicConfigurator.configure(myFileAppender);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Теперь это отлично работает, если я запускаю задания последовательно - но когда я запускаю 2 потока (одного класса) одновременно, оба журнала сохраняются. создается, но журналы перепутаны: второй поток регистрируется как в первом, так и во втором журнале.
Как я могу убедиться, что каждый экземпляр уникален? Я уже пытался дать каждому экземпляру регистратора уникальное имя, но это ничего не изменило.