javalogginglog4j2

Load Log4j2 configuration file programmatically


I want to load Log4j2 XML configuration file programmatically from my application.

Tried this:

ConfigurationSource source = new ConfigurationSource();
source.setLocation(logConfigurationFile);
Configurator.initialize(null, source);

and this:

ConfigurationSource source = new ConfigurationSource();
source.setLocation(logConfigurationFile);
ConfigurationFactory factory = (ConfigurationFactory) XMLConfigurationFactory.getInstance().getConfiguration(source);
ConfigurationFactory.setConfigurationFactory(factory);

But nothing works yet.


Solution

  • Found the answer myself. Someone might find it useful.

    ConfigurationSource source = new ConfigurationSource();
    source.setLocation(logConfigurationFile);
    source.setFile(new File(logConfigurationFile));
    source.setInputStream(new FileInputStream(logConfigurationFile));
    Configurator.initialize(null, source);