Создание другого каталога во время выполнения для хранения журнала разных клиентов. Но заметил, что журналы CustomerA появляются в файле журнала CustomerB и наоборот.
Ниже приведен фрагмент кода, написанный для создания другого каталога во время выполнения. Но похоже, что он не работает должным образом в многопоточной среде.
public static void configureLogback(String orgId) {
try {
InputStream in = LogbackConfigListener.class.getClassLoader()
.getResourceAsStream("/logback.xml");
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.reset();
String logpath = System.getenv("LOG4J_LOG_PATH");
if(logpath == null) {
logpath = System.getProperty("LOG4J_LOG_PATH");
}
System.out.println(logpath);
loggerContext.putProperty("LOG4J_LOG_PATH", logpath+"/"+orgId);
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(loggerContext);
configurator.doConfigure(in); // loads logback file
} catch (JoranException e) {
System.err.println(e.getMessage());
}
}
Поскольку LoggerContext является одноэлементным экземпляром, я надеюсь, что это создает проблему.
Не знаю, как действовать дальше. Любая помощь будет оценена.