Java >> Java tutorial >  >> Tag >> Log4j

Indlæs Log4j2-konfigurationsfilen programmatisk

For den nyeste version af log4j, her er hvad der skulle fungere for at indlæse en ekstern log4j2.xml :

String log4jConfigFile = System.getProperty("user.dir") + File.separator + "log4j2.xml";
ConfigurationSource source = new ConfigurationSource(new FileInputStream(log4jConfigFile));
Configurator.initialize(null, source);

Hvis du har et enkelt hovedindgangspunkt, kan dette kodestykke muligvis spare dig for nogle problemer. Det indstillede egenskabskald skal udløses, før der oprettes loggere. Denne tilgang virker med filer på klassestien.

public class TestProcess {
    static {
        System.setProperty("log4j.configurationFile", "log4j-alternate.xml");
    }

    private static final Logger log = LoggerFactory.getLogger(TestProcess.class);

}

Har selv fundet svaret. Nogen vil måske finde det nyttigt.

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

Java tag