[jboss-cvs] jboss-seam/src/main/org/jboss/seam/log ...

Gavin King gavin.king at jboss.com
Fri Dec 15 21:16:28 EST 2006


  User: gavin   
  Date: 06/12/15 21:16:28

  Modified:    src/main/org/jboss/seam/log      LogImpl.java
  Added:       src/main/org/jboss/seam/log      JDKProvider.java
                        Log4JProvider.java LogProvider.java Logging.java
  Log:
  rip out commons-logging, in order to solve   JBSEAM-581
  
  Revision  Changes    Path
  1.8       +4 -10     jboss-seam/src/main/org/jboss/seam/log/LogImpl.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: LogImpl.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/log/LogImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -b -r1.7 -r1.8
  --- LogImpl.java	14 Nov 2006 20:38:30 -0000	1.7
  +++ LogImpl.java	16 Dec 2006 02:16:28 -0000	1.8
  @@ -5,7 +5,6 @@
   import java.io.ObjectInput;
   import java.io.ObjectOutput;
   
  -import org.apache.commons.logging.LogFactory;
   import org.jboss.seam.core.Interpolator;
   
   /**
  @@ -16,20 +15,15 @@
   public class LogImpl implements Log, Externalizable
   {
      
  -   private transient org.apache.commons.logging.Log log;
  +   private transient LogProvider log;
      private String category;
   
      public LogImpl() {} //for Externalizable
      
  -   public LogImpl(Class clazz)
  -   {
  -      this( clazz.getName() );
  -   }
  -
  -   public LogImpl(String category)
  +   LogImpl(String category)
      {
         this.category = category;
  -      this.log = LogFactory.getLog(category);
  +      this.log = Logging.getLogProvider(category);
      }
   
      public boolean isDebugEnabled()
  @@ -173,7 +167,7 @@
      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
      {
         category = (String) in.readObject();
  -      log = LogFactory.getLog(category);
  +      log = Logging.getLogProvider(category);
      }
   
      public void writeExternal(ObjectOutput out) throws IOException
  
  
  
  1.1      date: 2006/12/16 02:16:28;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/log/JDKProvider.java
  
  Index: JDKProvider.java
  ===================================================================
  package org.jboss.seam.log;
  
  import java.util.logging.Level;
  import java.util.logging.Logger;
  
  public class JDKProvider implements LogProvider
  {
     private final Logger logger;
  
     JDKProvider(String category)
     {
        this.logger = Logger.getLogger(category);
     }
  
     private void log( Level level, Object object, Throwable ex ) 
     {
  
        if ( logger.isLoggable(level) ) 
        {
            Throwable dummyException=new Throwable();
            StackTraceElement locations[]=dummyException.getStackTrace();
            String className="unknown";
            String methodName="unknown";
            if( locations!=null && locations.length>3 ) 
            {
                StackTraceElement caller=locations[3];
                className=caller.getClassName();
                methodName=caller.getMethodName();
            }
            if( ex==null ) 
            {
                logger.logp( level, className, methodName, String.valueOf(object) );
            } 
            else 
            {
                logger.logp( level, className, methodName, String.valueOf(object), ex );
            }
        }
  
    }
     
     public void debug(Object object, Throwable t)
     {
        log(Level.FINE, object, t);
     }
  
     public void debug(Object object)
     {
        log(Level.FINE, object, null);
     }
  
     public void error(Object object, Throwable t)
     {
        log(Level.SEVERE, object, t);
     }
  
     public void error(Object object)
     {
        log(Level.SEVERE, object, null);
     }
  
     public void fatal(Object object, Throwable t)
     {
        log(Level.SEVERE, object, t);
     }
  
     public void fatal(Object object)
     {
        log(Level.SEVERE, object, null);
     }
  
     public void info(Object object, Throwable t)
     {
        log(Level.INFO, object, t);
     }
  
     public void info(Object object)
     {
        log(Level.INFO, object, null);
     }
  
     public boolean isDebugEnabled()
     {
        return logger.isLoggable(Level.FINE);
     }
  
     public boolean isErrorEnabled()
     {
        return logger.isLoggable(Level.SEVERE);
     }
  
     public boolean isFatalEnabled()
     {
        return logger.isLoggable(Level.SEVERE);
     }
  
     public boolean isInfoEnabled()
     {
        return logger.isLoggable(Level.INFO);
     }
  
     public boolean isTraceEnabled()
     {
        return logger.isLoggable(Level.FINER);
     }
  
     public boolean isWarnEnabled()
     {
        return logger.isLoggable(Level.WARNING);
     }
  
     public void trace(Object object, Throwable t)
     {
        log(Level.FINER, object, t);
     }
  
     public void trace(Object object)
     {
        log(Level.FINER, object, null);
     }
  
     public void warn(Object object, Throwable t)
     {
        log(Level.WARNING, object, t);
     }
  
     public void warn(Object object)
     {
        log(Level.WARNING, object, null);
     }
     
  }
  
  
  
  1.1      date: 2006/12/16 02:16:28;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/log/Log4JProvider.java
  
  Index: Log4JProvider.java
  ===================================================================
  package org.jboss.seam.log;
  
  import org.apache.log4j.Level;
  import org.apache.log4j.Logger;
  
  public final class Log4JProvider implements LogProvider
  {
     private final Logger logger;
     
     private static final String FQCN = LogImpl.class.getName();
     
     Log4JProvider(String category)
     {
        logger = Logger.getLogger(category);
     }
     
     public void debug(Object object)
     {
        logger.log(FQCN, Level.DEBUG, object, null);
     }
  
     public void debug(Object object, Throwable t)
     {
        logger.log(FQCN, Level.DEBUG, object, t);
     }
  
     public void error(Object object)
     {
        logger.log(FQCN, Level.ERROR, object, null);
     }
  
     public void error(Object object, Throwable t)
     {
        logger.log(FQCN, Level.ERROR, object, t);
     }
  
     public void fatal(Object object)
     {
        logger.log(FQCN, Level.FATAL, object, null);
     }
  
     public void fatal(Object object, Throwable t)
     {
        logger.log(FQCN, Level.DEBUG, object, t);
     }
  
     public void info(Object object)
     {
        logger.log(FQCN, Level.INFO, object, null);
     }
  
     public void info(Object object, Throwable t)
     {
        logger.log(FQCN, Level.INFO, object, t);
     }
  
     public boolean isDebugEnabled()
     {
        return logger.isEnabledFor(Level.DEBUG);
     }
  
     public boolean isErrorEnabled()
     {
        return logger.isEnabledFor(Level.ERROR);
     }
  
     public boolean isFatalEnabled()
     {
        return logger.isEnabledFor(Level.FATAL);
     }
  
     public boolean isInfoEnabled()
     {
        return logger.isEnabledFor(Level.INFO);
     }
  
     public boolean isTraceEnabled()
     {
        return logger.isEnabledFor(Level.DEBUG);
     }
  
     public boolean isWarnEnabled()
     {
        return logger.isEnabledFor(Level.WARN);
     }
  
     public void trace(Object object)
     {
        logger.log(FQCN, Level.DEBUG, object, null);
     }
  
     public void trace(Object object, Throwable t)
     {
        logger.log(FQCN, Level.DEBUG, object, t);
     }
  
     public void warn(Object object)
     {
        logger.log(FQCN, Level.WARN, object, null);
     }
  
     public void warn(Object object, Throwable t)
     {
        logger.log(FQCN, Level.WARN, object, t);
     }
  
  }
  
  
  
  1.1      date: 2006/12/16 02:16:28;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/log/LogProvider.java
  
  Index: LogProvider.java
  ===================================================================
  package org.jboss.seam.log;
  
  public interface LogProvider
  {
     public void trace(Object object);
     public void trace(Object object, Throwable t);
     public void debug(Object object);
     public void debug(Object object, Throwable t);
     public void info(Object object);
     public void info(Object object, Throwable t);
     public void warn(Object object);
     public void warn(Object object, Throwable t);
     public void error(Object object);
     public void error(Object object, Throwable t);
     public void fatal(Object object);
     public void fatal(Object object, Throwable t);
     public boolean isTraceEnabled();
     public boolean isDebugEnabled();
     public boolean isInfoEnabled();
     public boolean isWarnEnabled();
     public boolean isErrorEnabled();
     public boolean isFatalEnabled();
  }
  
  
  
  1.1      date: 2006/12/16 02:16:28;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/log/Logging.java
  
  Index: Logging.java
  ===================================================================
  package org.jboss.seam.log;
  
  public class Logging
  {
     
     private static final boolean isLog4JAvailable;
     
     static
     {
        boolean available;
        try
        {
           Class.forName("org.apache.log4j.Logger");
           available = true;
        }
        catch (ClassNotFoundException cnfe)
        {
           available = false;
        }
        isLog4JAvailable = available;
     }
     
     public static Log getLog(String category)
     {
        return new LogImpl(category);
     }
     
     public static Log getLog(Class clazz)
     {
        return new LogImpl( clazz.getName() );
     }
     
     public static LogProvider getLogProvider(String category)
     {
        return isLog4JAvailable ? 
                 new Log4JProvider(category) : 
                 new JDKProvider(category);
     }
     
  }
  
  
  



More information about the jboss-cvs-commits mailing list