Implementation of {@link org.apache.logging.log4j.spi.LoggerContextFactory} whichacts as the bootstrap for mule's logging mechanism.
It forces {@link org.mule.module.launcher.log4j2.ArtifactAwareContextSelector} asthe only selector, {@link org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory}as the only available {@link org.apache.logging.log4j.core.config.ConfigurationFactory}, and sets {@link org.mule.module.launcher.log4j2.AsyncLoggerExceptionHandler} as the{@link com.lmax.disruptor.ExceptionHandler} for failing async loggers.
Other than that, it's pretty much a copy paste of {@link org.apache.logging.log4j.core.impl.Log4jContextFactory}, due to that classes' lack of extensibility.
By forcing {@link org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory} as the only available{@link org.apache.logging.log4j.core.config.ConfigurationFactory} we're disabling log4j2's ability totake json and yaml configurations. This is so because those configuration factories depend on versions of the jackson libraries which would cause conflict with the ones in mule. TODO: Upgrade the jackson libraries bundled with mule so that this restriction can be lifted off
@since 3.6.0