[ https://issues.apache.org/jira/browse/LOG4J2-1721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pastrie updated LOG4J2-1721: ---------------------------- Description: Log4j allows multiple configuration files to be used by specifying them as a list of comma separated file paths on log4j.configurationFile property. This feature is not available in web environment since the log4jConfiguration context parameter accepts a single Path/File/URI. My proposal is to apply some small changes in the Log4jWebInitializerImpl class - change method getConfigURI to return List<URI> instead of URI. {code:title=Log4jWebInitializerImpl.java|borderStyle=solid} if (configLocation != null) { if (configLocation.contains(",")) { final String[] parts = configLocation.split(","); final List<URI> uris = new ArrayList<>(parts.length); for (final String part : parts) { final URL url = servletContext.getResource(part); if (url != null) { final URI uri = url.toURI(); LOGGER.debug("getConfigURI found resource [{}] in servletContext at [{}]", uri, configLocation); uris.add(url); } } } {code} - change method initializeNonJndi {code:title=Log4jWebInitializerImpl.java|borderStyle=solid} [...] final List<URI> listUri = getConfigURI(location); this.loggerContext = Configurator.initialize(this.name, this.getClassLoader(), listUri, this.servletContext); {code} was: Log4j allows multiple configuration files to be used by specifying them as a list of comma separated file paths on log4j.configurationFile property. This feature is not available in web environment since the log4jConfiguration context parameter accepts a Path/File/URI. My proposal is to apply some small changes in the Log4jWebInitializerImpl class - change method getConfigURI to return List<URI> instead of URI. {code:title=Log4jWebInitializerImpl.java|borderStyle=solid} if (configLocation != null) { if (configLocation.contains(",")) { final String[] parts = configLocation.split(","); final List<URI> uris = new ArrayList<>(parts.length); for (final String part : parts) { final URL url = servletContext.getResource(part); if (url != null) { final URI uri = url.toURI(); LOGGER.debug("getConfigURI found resource [{}] in servletContext at [{}]", uri, configLocation); uris.add(url); } } } {code} - change method initializeNonJndi {code:title=Log4jWebInitializerImpl.java|borderStyle=solid} [...] final List<URI> listUri = getConfigURI(location); this.loggerContext = Configurator.initialize(this.name, this.getClassLoader(), listUri, this.servletContext); {code} > Composite configuration using log4jConfiguration context parameter > ------------------------------------------------------------------ > > Key: LOG4J2-1721 > URL: https://issues.apache.org/jira/browse/LOG4J2-1721 > Project: Log4j 2 > Issue Type: Improvement > Components: Configurators, Web/Servlet > Affects Versions: 2.7 > Reporter: Pastrie > Labels: features > Original Estimate: 3h > Remaining Estimate: 3h > > Log4j allows multiple configuration files to be used by specifying them as a > list of comma separated file paths on log4j.configurationFile property. This > feature is not available in web environment since the log4jConfiguration > context parameter accepts a single Path/File/URI. > My proposal is to apply some small changes in the Log4jWebInitializerImpl > class > - change method getConfigURI to return List<URI> instead of URI. > {code:title=Log4jWebInitializerImpl.java|borderStyle=solid} > if (configLocation != null) { > if (configLocation.contains(",")) { > final String[] parts = configLocation.split(","); > final List<URI> uris = new ArrayList<>(parts.length); > for (final String part : parts) { > final URL url = servletContext.getResource(part); > if (url != null) { > final URI uri = url.toURI(); > LOGGER.debug("getConfigURI found resource [{}] > in servletContext at [{}]", uri, configLocation); > uris.add(url); > } > } > } > {code} > - change method initializeNonJndi > {code:title=Log4jWebInitializerImpl.java|borderStyle=solid} > [...] > final List<URI> listUri = getConfigURI(location); > this.loggerContext = Configurator.initialize(this.name, > this.getClassLoader(), listUri, this.servletContext); > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org