[webbeans-commits] Webbeans SVN: r153 - in ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans: log and 1 other directory.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Sat Oct 25 16:38:13 EDT 2008


Author: nickarls
Date: 2008-10-25 16:38:12 -0400 (Sat, 25 Oct 2008)
New Revision: 153

Added:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/JDKProvider.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log4JProvider.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/LogImpl.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/LogProvider.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Logging.java
Log:
Moved over logging package from Seam

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/JDKProvider.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/JDKProvider.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/JDKProvider.java	2008-10-25 20:38:12 UTC (rev 153)
@@ -0,0 +1,135 @@
+package org.jboss.webbeans.log;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+class JDKProvider implements LogProvider
+{
+   private final Logger logger;
+   private final boolean isWrapped;
+
+   JDKProvider(String category, boolean wrapped)
+   {
+      this.logger = Logger.getLogger(category);
+      this.isWrapped = wrapped;
+   }
+
+   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";
+         int depth = isWrapped ? 3 : 2;
+         if (locations != null && locations.length > depth)
+         {
+            StackTraceElement caller = locations[depth];
+            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);
+   }
+
+}

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log.java	2008-10-25 20:38:12 UTC (rev 153)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.log;
+
+public interface Log
+{
+   public boolean isDebugEnabled();
+   public boolean isErrorEnabled();
+   public boolean isFatalEnabled();
+   public boolean isInfoEnabled();
+   public boolean isTraceEnabled();
+   public boolean isWarnEnabled();
+   public void trace(Object object, Object... params);
+   public void trace(Object object, Throwable t, Object... params);
+   public void debug(Object object, Object... params);
+   public void debug(Object object, Throwable t, Object... params);
+   public void info(Object object, Object... params);
+   public void info(Object object, Throwable t, Object... params);
+   public void warn(Object object, Object... params);
+   public void warn(Object object, Throwable t, Object... params);
+   public void error(Object object, Object... params);
+   public void error(Object object, Throwable t, Object... params);
+   public void fatal(Object object, Object... params);
+   public void fatal(Object object, Throwable t, Object... params);
+
+}
\ No newline at end of file

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log4JProvider.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log4JProvider.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log4JProvider.java	2008-10-25 20:38:12 UTC (rev 153)
@@ -0,0 +1,130 @@
+package org.jboss.webbeans.log;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+
+final class Log4JProvider implements LogProvider
+{
+   private final Logger logger;
+   private final boolean isWrapped;
+
+   private static final String LOG_IMPL_FQCN = LogImpl.class.getName();
+   private static final String LOG_PROVIDER_FQCN = Log4JProvider.class.getName();
+
+   private static final Level TRACE;
+   static
+   {
+      Object trace;
+      try
+      {
+         trace = Level.class.getDeclaredField("TRACE").get(null);
+      }
+      catch (Exception e)
+      {
+         trace = Level.DEBUG;
+      }
+      TRACE = (Level) trace;
+   }
+
+   Log4JProvider(String category, boolean wrapped)
+   {
+      logger = Logger.getLogger(category);
+      isWrapped = wrapped;
+   }
+
+   private String getFQCN()
+   {
+      return isWrapped ? LOG_IMPL_FQCN : LOG_PROVIDER_FQCN;
+   }
+
+   public void debug(Object object)
+   {
+      logger.log(getFQCN(), Level.DEBUG, object, null);
+   }
+
+   public void debug(Object object, Throwable t)
+   {
+      logger.log(getFQCN(), Level.DEBUG, object, t);
+   }
+
+   public void error(Object object)
+   {
+      logger.log(getFQCN(), Level.ERROR, object, null);
+   }
+
+   public void error(Object object, Throwable t)
+   {
+      logger.log(getFQCN(), Level.ERROR, object, t);
+   }
+
+   public void fatal(Object object)
+   {
+      logger.log(getFQCN(), Level.FATAL, object, null);
+   }
+
+   public void fatal(Object object, Throwable t)
+   {
+      logger.log(getFQCN(), Level.FATAL, object, t);
+   }
+
+   public void info(Object object)
+   {
+      logger.log(getFQCN(), Level.INFO, object, null);
+   }
+
+   public void info(Object object, Throwable t)
+   {
+      logger.log(getFQCN(), 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(TRACE);
+   }
+
+   public boolean isWarnEnabled()
+   {
+      return logger.isEnabledFor(Level.WARN);
+   }
+
+   public void trace(Object object)
+   {
+      logger.log(getFQCN(), TRACE, object, null);
+   }
+
+   public void trace(Object object, Throwable t)
+   {
+      logger.log(getFQCN(), TRACE, object, t);
+   }
+
+   public void warn(Object object)
+   {
+      logger.log(getFQCN(), Level.WARN, object, null);
+   }
+
+   public void warn(Object object, Throwable t)
+   {
+      logger.log(getFQCN(), Level.WARN, object, t);
+   }
+
+}

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/LogImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/LogImpl.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/LogImpl.java	2008-10-25 20:38:12 UTC (rev 153)
@@ -0,0 +1,175 @@
+package org.jboss.webbeans.log;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+class LogImpl implements Log, Externalizable
+{
+   private transient LogProvider log;
+   private String category;
+
+   public LogImpl()
+   {
+   }
+
+   LogImpl(String category)
+   {
+      this.category = category;
+      this.log = Logging.getLogProvider(category, true);
+   }
+
+   public boolean isDebugEnabled()
+   {
+      return log.isDebugEnabled();
+   }
+
+   public boolean isErrorEnabled()
+   {
+      return log.isErrorEnabled();
+   }
+
+   public boolean isFatalEnabled()
+   {
+      return log.isFatalEnabled();
+   }
+
+   public boolean isInfoEnabled()
+   {
+      return log.isInfoEnabled();
+   }
+
+   public boolean isTraceEnabled()
+   {
+      return log.isTraceEnabled();
+   }
+
+   public boolean isWarnEnabled()
+   {
+      return log.isWarnEnabled();
+   }
+
+   public void trace(Object object, Object... params)
+   {
+      if (isTraceEnabled())
+      {
+         log.trace(interpolate(object, params));
+      }
+   }
+
+   public void trace(Object object, Throwable t, Object... params)
+   {
+      if (isTraceEnabled())
+      {
+         log.trace(interpolate(object, params), t);
+      }
+   }
+
+   public void debug(Object object, Object... params)
+   {
+      if (isDebugEnabled())
+      {
+         log.debug(interpolate(object, params));
+      }
+   }
+
+   public void debug(Object object, Throwable t, Object... params)
+   {
+      if (isDebugEnabled())
+      {
+         log.debug(interpolate(object, params), t);
+      }
+   }
+
+   public void info(Object object, Object... params)
+   {
+      if (isInfoEnabled())
+      {
+         log.info(interpolate(object, params));
+      }
+   }
+
+   public void info(Object object, Throwable t, Object... params)
+   {
+      if (isInfoEnabled())
+      {
+         log.info(interpolate(object, params), t);
+      }
+   }
+
+   public void warn(Object object, Object... params)
+   {
+      if (isWarnEnabled())
+      {
+         log.warn(interpolate(object, params));
+      }
+   }
+
+   public void warn(Object object, Throwable t, Object... params)
+   {
+      if (isWarnEnabled())
+      {
+         log.warn(interpolate(object, params), t);
+      }
+   }
+
+   public void error(Object object, Object... params)
+   {
+      if (isErrorEnabled())
+      {
+         log.error(interpolate(object, params));
+      }
+   }
+
+   public void error(Object object, Throwable t, Object... params)
+   {
+      if (isErrorEnabled())
+      {
+         log.error(interpolate(object, params), t);
+      }
+   }
+
+   public void fatal(Object object, Object... params)
+   {
+      if (isFatalEnabled())
+      {
+         log.fatal(interpolate(object, params));
+      }
+   }
+
+   public void fatal(Object object, Throwable t, Object... params)
+   {
+      if (isFatalEnabled())
+      {
+         log.fatal(interpolate(object, params), t);
+      }
+   }
+
+   private Object interpolate(Object object, Object... params)
+   {
+      if (object instanceof String)
+      {
+         return object;
+         // TODO: interpolation
+         // return Interpolator.instance().interpolate( (String) object, params
+         // );
+      }
+      else
+      {
+         return object;
+      }
+   }
+
+   public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
+   {
+      category = (String) in.readObject();
+      log = Logging.getLogProvider(category, true);
+   }
+
+   public void writeExternal(ObjectOutput out) throws IOException
+   {
+      out.writeObject(category);
+   }
+
+}

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/LogProvider.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/LogProvider.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/LogProvider.java	2008-10-25 20:38:12 UTC (rev 153)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.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();
+}

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Logging.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Logging.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Logging.java	2008-10-25 20:38:12 UTC (rev 153)
@@ -0,0 +1,42 @@
+package org.jboss.webbeans.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());
+   }
+
+   static LogProvider getLogProvider(String category, boolean wrapped)
+   {
+      return isLog4JAvailable ? new Log4JProvider(category, wrapped) : new JDKProvider(category, wrapped);
+   }
+
+   public static LogProvider getLogProvider(Class clazz)
+   {
+      return getLogProvider(clazz.getName(), false);
+   }
+
+}




More information about the weld-commits mailing list