Inconsistent use of logger delegation via LogUtils
--------------------------------------------------

                 Key: CXF-1981
                 URL: https://issues.apache.org/jira/browse/CXF-1981
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.2
            Reporter: Andrzej Michalec
            Priority: Minor
             Fix For: 2.2


Even after installation of Log4jLogger delegate (via 
META-INF/cxf/org.apache.cxf.Logger file) some messages still are logged by 
java.util.logging -- example:

14 Jan 2009 14:09:05,358 
[ContainerBackgroundProcessor[StandardEngine[Catalina]]] INFO  
org.apache.cxf.bus.spring.BusApplicationContext - Refreshing 
org.apache.cxf.bus.spring.busapplicationcont...@6c826c82: display name 
[org.apache.cxf.bus.spring.busapplicationcont...@6c826c82]; startup date [Wed 
Jan 14 14:09:05 CET 2009]; parent: 
org.springframework.web.context.support.xmlwebapplicationcont...@6abe6abe
14 Jan 2009 14:09:05,393 
[ContainerBackgroundProcessor[StandardEngine[Catalina]]] INFO  
org.apache.cxf.bus.spring.BusApplicationContext - Bean factory for application 
context [org.apache.cxf.bus.spring.busapplicationcont...@6c826c82]: 
org.springframework.beans.factory.support.defaultlistablebeanfact...@75d275d2
...
Jan 14, 2009 2:10:03 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Application has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault
        at 
org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:148)
        at 
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:114)
...


Review of PhaseInterceptorChain class shows that some log messages are passed 
via delegating logger and other via direct call to LogUtils:


public class PhaseInterceptorChain implements InterceptorChain {
    private static final Logger LOG = 
LogUtils.getL7dLogger(PhaseInterceptorChain.class); 
...
    public void add(Interceptor i, boolean force) {
...
            if (LOG.isLoggable(Level.FINE)) {
                LOG.fine("Adding interceptor " + i + " to phase " + phaseName);
            }
...
    }

    public synchronized boolean doIntercept(Message message) {
...
                        if (LOG.isLoggable(Level.FINE)) { 
                            LogUtils.log(LOG, Level.FINE,
                                         "Application has thrown exception, 
unwinding now", ex);
                        } else if (LOG.isLoggable(Level.INFO)) {
...
    }
}


Workaround is to install SFL4J delegating JUL to Log4j however I guess it would 
be better clean up the code. I think that use of LogUtils.log() should be 
forbidden and enforcement could be done via checkstyle (marking this method as 
depreciaded first) -or- introduction of AOP with aspect checking calls to 
illegal method.

cheers,
andy

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to