Próbuję użyć pliku konfiguracyjnego XML dla Log4j2, który jest osadzony w mojej aplikacji Java, ale nie działa.Błąd Log4j2 przy ładowaniu pliku konfiguracyjnego XML
Kod:
ConfigurationSource source = new ConfigurationSource(Main.class.getResourceAsStream("/in/gunbound/prelauncher/server/log4j2/log4j2.xml"));
ConfigurationFactory factory = (ConfigurationFactory) XMLConfigurationFactory.getInstance().getConfiguration(source);
ConfigurationFactory.setConfigurationFactory(factory);
Błąd:
Exception in thread "main" java.lang.ClassCastException: org.apache.logging.log4j.core.config.XMLConfiguration cannot be cast to org.apache.logging.log4j.core.config.ConfigurationFactory at in.gunbound.prelauncher.server.Main.main(Main.java:62)
Dodanie pliku do ścieżki klas nie zawsze jest "łatwe", np. jeśli utworzysz aplikację na komputerze z javapackager, otrzymasz np. plik .exe uruchamiający aplikację. W przypadku "normalnych" programów java uruchamianych z "java -jar" jest to łatwiejsze (również w tych przypadkach konfiguracja rejestratora zwykle znajduje się w folderze obok słoika, w którym to przypadku manifest słoika może opisywać ścieżkę klasy. javapackager utworzony instalator instaluje się do plików programu, nie można edytować tego pliku log4j conf, chyba że jesteś administratorem) –