[
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 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.
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
[...]
final List<URI> listUri = getConfigURI(location);
this.loggerContext = Configurator.initialize(this.name,
this.getClassLoader(), listUri, this.servletContext);
}
> 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 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: [email protected]
For additional commands, e-mail: [email protected]