Details
-
Type:
Improvement
-
Status: Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.7
-
Fix Version/s: 2.11.1
-
Component/s: Configurators, Web/Servlet
-
Labels:
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.
Log4jWebInitializerImpl.java
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); } } }
- change method initializeNonJndi
Log4jWebInitializerImpl.java
[...] final List<URI> listUri = getConfigURI(location); this.loggerContext = Configurator.initialize(this.name, this.getClassLoader(), listUri, this.servletContext);
Attachments
Issue Links
- links to