[logback-dev] [JIRA] Issue Comment Edited: (LBCLASSIC-159) Invalid multiple configuration file warning
Derek Mahar (JIRA)
noreply-jira at qos.ch
Thu Aug 5 03:34:16 CEST 2010
[ http://jira.qos.ch/browse/LBCLASSIC-159?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11809#action_11809 ]
Derek Mahar edited comment on LBCLASSIC-159 at 8/5/10 3:33 AM:
---------------------------------------------------------------
Changing the return value of method getResourceOccurenceCount(String, ClassLoader) from "List<URL>" to "Set<URL>" in class ch.qos.logback.core.util.Loader should resolve this issue:
public static List<URL> getResourceOccurenceCount(String resource,
ClassLoader classLoader) throws IOException {
List<URL> urlList = new ArrayList<URL>();
Enumeration<URL> urlEnum = classLoader.getResources(resource);
while (urlEnum.hasMoreElements()) {
URL url = urlEnum.nextElement();
urlList.add(url);
}
return urlList;
}
Method multiplicityWarning(String, ClassLoader) in class ch.qos.logback.classic.util.ContextInitializer uses this method to decide whether or not to print the multiple classpath entry warning:
private void multiplicityWarning(String resourceName, ClassLoader classLoader) {
List<URL> urlList = null;
StatusManager sm = loggerContext.getStatusManager();
try {
urlList = Loader.getResourceOccurenceCount(resourceName, classLoader);
} catch (IOException e) {
sm.add(new ErrorStatus("Failed to get url list for resource [" + resourceName + "]",
loggerContext, e));
}
if (urlList != null && urlList.size() > 1) {
sm.add(new WarnStatus("Resource [" + resourceName + "] occurs multiple times on the classpath.",
loggerContext));
for (URL url : urlList) {
sm.add(new WarnStatus("Resource [" + resourceName + "] occurs at [" + url.toString() + "]",
loggerContext));
}
}
}
Note that this is the state of the code as of release 0.9.24 (http://github.com/derekmahar/logback/tree/v_0.9.24 or commit http://github.com/ceki/logback/commit/10b6686ab92a53f860b14953ce8493d5c3534a46 ).
was (Author: derekmahar):
Changing the return value of method getResourceOccurenceCount(String, ClassLoader) from "List<URL>" to "Set<URL>" in class ch.qos.logback.core.util.Loader should resolve this issue:
public static List<URL> getResourceOccurenceCount(String resource,
ClassLoader classLoader) throws IOException {
List<URL> urlList = new ArrayList<URL>();
Enumeration<URL> urlEnum = classLoader.getResources(resource);
while (urlEnum.hasMoreElements()) {
URL url = urlEnum.nextElement();
urlList.add(url);
}
return urlList;
}
Method multiplicityWarning(String, ClassLoader) in class ch.qos.logback.classic.util.ContextInitializer uses this method to decide whether or not to print the multiple classpath entry warning:
private void multiplicityWarning(String resourceName, ClassLoader classLoader) {
List<URL> urlList = null;
StatusManager sm = loggerContext.getStatusManager();
try {
urlList = Loader.getResourceOccurenceCount(resourceName, classLoader);
} catch (IOException e) {
sm.add(new ErrorStatus("Failed to get url list for resource [" + resourceName + "]",
loggerContext, e));
}
if (urlList != null && urlList.size() > 1) {
sm.add(new WarnStatus("Resource [" + resourceName + "] occurs multiple times on the classpath.",
loggerContext));
for (URL url : urlList) {
sm.add(new WarnStatus("Resource [" + resourceName + "] occurs at [" + url.toString() + "]",
loggerContext));
}
}
}
(Note that this is the state of the code as of release 0.9.24 (http://github.com/derekmahar/logback/tree/v_0.9.24) or commit 10b6686ab92a53f860b14953ce8493d5c3534a46 (http://github.com/ceki/logback/commit/10b6686ab92a53f860b14953ce8493d5c3534a46 ).)
> Invalid multiple configuration file warning
> -------------------------------------------
>
> Key: LBCLASSIC-159
> URL: http://jira.qos.ch/browse/LBCLASSIC-159
> Project: logback-classic
> Issue Type: Bug
> Components: Other
> Affects Versions: 0.917
> Environment: Resin webapp
> Reporter: Hontvári József
> Assignee: Logback dev list
>
> I receive strange warnings in the status info. It says that logback.xml, which in this case comes from a file and not from the classpath, occurs multiple times. The file is specifies and logged using absolute path, so even relative paths cannot cause the warning.
> Logback configuration file is specified by the system property "logback.configurationFile". It is done by the Resin application server, somehow it is able to supply different properties for different web applications. I don't think this is important, however. Maybe I am doing something wrong, but at least the message doesn't help.
> 20:36:34,236 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [file:/C:/Progra~1/mireka/conf/logback.xml] at [file:/C:/Progra~1/mireka/conf/logback.xml]
> 20:36:34,236 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [file:/C:/Progra~1/mireka/conf/logback.xml] occurs multiple times on the classpath.
> 20:36:34,236 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [file:/C:/Progra~1/mireka/conf/logback.xml] occurs at [file:/C:/Progra~1/mireka/conf/logback.xml]
> 20:36:34,236 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [file:/C:/Progra~1/mireka/conf/logback.xml] occurs at [file:/C:/Progra~1/mireka/conf/logback.xml]
> 20:36:34,236 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [file:/C:/Progra~1/mireka/conf/logback.xml] occurs at [file:/C:/Progra~1/mireka/conf/logback.xml]
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the logback-dev
mailing list