В настоящее время я отправляю топологии Storm программно через мое Java-приложение, используя следующую команду:
Nimbus.Client client = NimbusClient.getConfiguredClient(stormConfigProvider.getStormConfig()).getClient();
client.submitTopology(
this.topologyID.toString(),
stormJarManager.getRemoteJarLocation(),
JSONValue.toJSONString(stormConfigProvider.getStormConfig()),
topology
);
В моем сценарии у меня есть два вида топологий. Тестирование топологий и производственных топологий. Для обоих видов топологий мне требуются разные типы журналирования. В то время как топологии тестирования работают с уровнем TRACE, производственные топологии будут работать с уровнем INFO. Кроме того, мне требуется, чтобы в рабочих топологиях был настроен приложение SPLUNK Log4J2 для централизации ведения журнала моего производственного приложения.
Для этого я включил файл log4j.xml в свой JAR-файл топологии, который настраивает приложение SPLUNK. Однако файл log4j.xml не учитывается Сервером. Вместо этого Storm Server, похоже, использует свою собственную конфигурацию.
Как мне изменить конфигурацию log4j для разных топологий? (Я не хочу изменять log4j.xml для каждого работника).