Btw.

Class.forName("org.slf4j.impl.StaticLoggerBinder");

does not work. Jetty also does that to check if slf4j is available. The problem 
is that pax logging does not even export this package.

So my proposal would be to completely switch to slf4j and not test for anything 
in the setup. If people want j.u.l. then they can use the slf4j adapter for it. 
That would bring our code in line with camel and karaf.

Another question is of course when to do such a change. I am not sure if we 
should switch right now.

Christian



Am 16.03.2012 15:48, schrieb Daniel Kulp:

I'm -1 for this change for 2 reasons:

1) This breaks existing logging configuration and thus cannot be pulled back
onto the other branches.   Users may already have j.u.l configs that would
no longer work.

2) Performance issues - the Slf4jLogger does a LOT more work than the j.u.l
loggers and thus we should only use this as a last resort, not the default
which this change pretty much entails.

Dan


On Friday, March 16, 2012 02:38:18 PM [email protected] wrote:
Author: ningjiang
Date: Fri Mar 16 14:38:18 2012
New Revision: 1301549

URL: http://svn.apache.org/viewvc?rev=1301549&view=rev
Log:
Merged revisions 1301539 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk

........
   r1301539 | ningjiang | 2012-03-16 22:18:01 +0800 (Fri, 16 Mar 2012) | 1
line

   CXF-4180 LogUtils should default to CXF's Slf4jLogger if it can't find
Log4J or JCL driver ........

Modified:
     cxf/branches/2.5.x-fixes/   (props changed)

cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/commo
n/logging/LogUtils.java

Propchange: cxf/branches/2.5.x-fixes/
--------------------------------------------------------------------------
---- svn:mergeinfo = /cxf/trunk:1301539

Propchange: cxf/branches/2.5.x-fixes/
--------------------------------------------------------------------------
---- Binary property 'svnmerge-integrated' - no diff available.

Modified:
cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/commo
n/logging/LogUtils.java URL:
http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/common/common/src/m
ain/java/org/apache/cxf/common/logging/LogUtils.java?rev=1301549&r1=130154
8&r2=1301549&view=diff
=========================================================================
===== ---
cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/commo
n/logging/LogUtils.java (original) +++
cxf/branches/2.5.x-fixes/common/common/src/main/java/org/apache/cxf/commo
n/logging/LogUtils.java Fri Mar 16 14:38:18 2012 @@ -97,17 +97,8 @@ public
final class LogUtils {
              }
              if (StringUtils.isEmpty(cname)) {
                  Class.forName("org.slf4j.impl.StaticLoggerBinder");
-                Class<?>  cls = Class.forName("org.slf4j.LoggerFactory");
-                Class<?>  fcls =
cls.getMethod("getILoggerFactory").invoke(null).getClass(); -
    if (fcls.getName().contains("Log4j")) {
-                    cname = "org.apache.cxf.common.logging.Log4jLogger";
-                } else if (fcls.getName().contains("JCL")) {
-                    cls =
Class.forName("org.apache.commons.logging.LogFactory"); -
    fcls = cls.getMethod("getFactory").invoke(null).getClass(); -
           if (fcls.getName().contains("Log4j")) {
-                        cname =
"org.apache.cxf.common.logging.Log4jLogger"; -                    }
-                }
+                // using the Slf4jLogger directly
+                cname = "org.apache.cxf.common.logging.Slf4jLogger";
              }
              if (!StringUtils.isEmpty(cname)) {
                  try {


--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
Talend Application Integration Division http://www.talend.com

Reply via email to