Sto cercando di utilizzare un file di configurazione XML per Log4j2 incorporato nella mia applicazione Java, ma non funziona.Errore log4j2 sul caricamento del file di configurazione XML
Il codice:
ConfigurationSource source = new ConfigurationSource(Main.class.getResourceAsStream("/in/gunbound/prelauncher/server/log4j2/log4j2.xml"));
ConfigurationFactory factory = (ConfigurationFactory) XMLConfigurationFactory.getInstance().getConfiguration(source);
ConfigurationFactory.setConfigurationFactory(factory);
L'errore:
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)
L'aggiunta di un file a classpath non è sempre "facile", ad es. se crei un'applicazione desktop con javapackager, ottieni ad es. un file .exe che avvia l'applicazione. Per i "normali" programmi java avviati con 'java -jar' è più semplice (anche in questi casi la configurazione del logger di solito si trova in una cartella accanto al jar, nel qual caso il manifest jar può descrivere il classpath. javapackager ha creato installazioni di installazione per programmare i file, non è possibile modificare il file conf di log4j se non si è admin) –