struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lukasz Lenart (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (WW-3988) Commons Logging may not work in XWork from issue WW-3959
Date Tue, 19 Mar 2013 22:17:16 GMT

    [ https://issues.apache.org/jira/browse/WW-3988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13606918#comment-13606918
] 

Lukasz Lenart commented on WW-3988:
-----------------------------------

So simply moving up commons-logging, before slf4j should solve the problem?
                
> Commons Logging may not work in XWork from issue WW-3959
> --------------------------------------------------------
>
>                 Key: WW-3988
>                 URL: https://issues.apache.org/jira/browse/WW-3988
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Integration
>    Affects Versions: 2.3.12
>            Reporter: Erik Berg
>              Labels: logging, slf4j, xwork
>             Fix For: 2.3.13
>
>
> Support for SLF4J in XWork added in WW-3959 can break Commons Logging since it looks
for SLF4J in the classpath first. If found, it assumes Struts/XWork is configured to use SLF4J
and creates an SLF4J log factory.
> The problem with this approach is that other libraries in a web application may have
a dependency on SLF4J, hence it is found in the classpath, even when it is not configured
as the logging factory for Struts.
> {code:title=LoggerFactory.java|borderStyle=dashed}
> Index: LoggerFactory.java
> ===================================================================
> --- LoggerFactory.java	(revision 911280)
> +++ LoggerFactory.java	(revision 1431482)
> @@ -16,6 +16,7 @@
>  package com.opensymphony.xwork2.util.logging;
>  
>  import com.opensymphony.xwork2.util.logging.jdk.JdkLoggerFactory;
> +import com.opensymphony.xwork2.util.logging.slf4j.Slf4jLoggerFactory;
>  
>  import java.util.concurrent.locks.ReadWriteLock;
>  import java.util.concurrent.locks.ReentrantReadWriteLock;
> @@ -59,11 +60,17 @@
>          try {
>              if (factory == null) {
>                  try {
> -                    Class.forName("org.apache.commons.logging.LogFactory");
> -                    factory = new com.opensymphony.xwork2.util.logging.commons.CommonsLoggerFactory();
> +                    Class.forName("org.slf4j.LoggerFactory");
> +                    factory = new Slf4jLoggerFactory();
>                  } catch (ClassNotFoundException ex) {
> -                    // commons logging not found, falling back to jdk logging
> -                    factory = new JdkLoggerFactory();
> +                    //slf4j not found try commons LogFactory
> +                    try {
> +                        Class.forName("org.apache.commons.logging.LogFactory");
> +                        factory = new com.opensymphony.xwork2.util.logging.commons.CommonsLoggerFactory();
> +                    } catch (ClassNotFoundException cnfex) {
> +                        // commons logging not found, falling back to jdk logging
> +                        factory = new JdkLoggerFactory();
> +                    }
>                  }
>              }
>              return factory;
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message