Как регистрировать несколько потоков в разных файлах журнала?

У меня есть класс 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 потока (одного класса) одновременно, оба журнала сохраняются. создается, но журналы перепутаны: второй поток регистрируется как в первом, так и во втором журнале.

Как я могу убедиться, что каждый экземпляр уникален? Я уже пытался дать каждому экземпляру регистратора уникальное имя, но это ничего не изменило.

7
задан skaffman 3 December 2011 в 21:27
поделиться