[jboss-svn-commits] JBoss Common SVN: r1918 - in branches/logging_refactoring: common-logging-spi/src/main/java/org/jboss/logging src/main/org/jboss/logging
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 3 09:36:30 EDT 2006
Author: ruel.loehr at jboss.com
Date: 2006-08-03 09:36:27 -0400 (Thu, 03 Aug 2006)
New Revision: 1918
Added:
branches/logging_refactoring/common-logging-spi/src/main/java/org/jboss/logging/Logger.java
Removed:
branches/logging_refactoring/src/main/org/jboss/logging/Logger.java
Log:
move spi classes to indep project
Copied: branches/logging_refactoring/common-logging-spi/src/main/java/org/jboss/logging/Logger.java (from rev 1917, branches/logging_refactoring/src/main/org/jboss/logging/Logger.java)
Deleted: branches/logging_refactoring/src/main/org/jboss/logging/Logger.java
===================================================================
--- branches/logging_refactoring/src/main/org/jboss/logging/Logger.java 2006-08-03 13:36:05 UTC (rev 1917)
+++ branches/logging_refactoring/src/main/org/jboss/logging/Logger.java 2006-08-03 13:36:27 UTC (rev 1918)
@@ -1,390 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.logging;
-
-import java.io.Serializable;
-
-/**
- * Logger wrapper that tries to dynamically load a log4j class to
- * determine if log4j is available in the VM. If it is the case,
- * a log4j delegate is built and used. In the contrary, a null
- * logger is used. This class cannot directly reference log4j
- * classes otherwise the JVM will try to load it and make it fail.
- * To set
- *
- * <p>Only exposes the relevent factory and logging methods.
- *
- * <p>For JBoss the logging should be done as follows:
- * <ul>
- * <li>FATAL - JBoss is likely to/will crash
- * <li>ERROR - A definite problem
- * <li>WARN - Likely to be a problem, or it could be JBoss
- * detected a problem it can recover from
- * <li>INFO - Lifecycle low volume, e.g. "Bound x into jndi",
- * things that are of interest to a user
- * <li>DEBUG - Lifecycle low volume but necessarily of interest
- * to the user, e.g. "Starting listener thread"
- * <li>TRACE - High volume detailed logging
- * </ul>
- *
- * @see #isTraceEnabled
- * @see #trace(Object)
- * @see #trace(Object,Throwable)
- *
- * @version <tt>$Revision$</tt>
- * @author Scott.Stark at jboss.org
- * @author <a href="mailto:jason at planet57.com">Jason Dillon</a>
- * @author <a href="mailto:sacha.labourey at cogito-info.ch">Sacha Labourey</a>
- */
-public class Logger implements Serializable
-{
- /** Serialization */
- private static final long serialVersionUID = 4232175575988879434L;
- /** The system property to look for an externalized LoggerPlugin implementation class */
- protected static String PLUGIN_CLASS_PROP = "org.jboss.logging.Logger.pluginClass";
- /** The default LoggerPlugin implementation is log4j */
- protected static final String LOG4J_PLUGIN_CLASS_NAME = "org.jboss.logging.Log4jLoggerPlugin";
- /** The LoggerPlugin implementation class to use */
- protected static Class pluginClass = null;
- /** The class name of the LoggerPlugin implementation class to use */
- protected static String pluginClassName = null;
-
- static
- {
- init();
- }
-
- /** The logger name. */
- private final String name;
-
- protected transient LoggerPlugin loggerDelegate = null;
-
- /** The LoggerPlugin implementation class name in use
- * @return LoggerPlugin implementation class name
- */
- public static String getPluginClassName()
- {
- return Logger.pluginClassName;
- }
- /** Set the LoggerPlugin implementation class name in use
- * @param pluginClassName the LoggerPlugin implementation class name
- */
- public static void setPluginClassName(String pluginClassName)
- {
- if( pluginClassName.equals(Logger.pluginClassName) == false )
- {
- Logger.pluginClassName = pluginClassName;
- init();
- }
- }
-
- /**
- * Creates new Logger the given logger name.
- *
- * @param name the logger name.
- */
- protected Logger(final String name)
- {
- this.name = name;
- this.loggerDelegate = getDelegatePlugin(name);
- }
-
- /**
- * Return the name of this logger.
- *
- * @return The name of this logger.
- */
- public String getName()
- {
- return name;
- }
-
- public LoggerPlugin getLoggerPlugin()
- {
- return this.loggerDelegate;
- }
-
- /**
- * Check to see if the TRACE level is enabled for this logger.
- *
- * @return true if a {@link #trace(Object)} method invocation would pass
- * the msg to the configured appenders, false otherwise.
- */
- public boolean isTraceEnabled()
- {
- return loggerDelegate.isTraceEnabled();
- }
-
- /**
- * Issue a log msg with a level of TRACE.
- * Invokes log.log(XLevel.TRACE, message);
- */
- public void trace(Object message)
- {
- loggerDelegate.trace(message);
- }
-
- /**
- * Issue a log msg and throwable with a level of TRACE.
- * Invokes log.log(XLevel.TRACE, message, t);
- */
- public void trace(Object message, Throwable t)
- {
- loggerDelegate.trace(message, t);
- }
-
- /**
- * Check to see if the DEBUG level is enabled for this logger.
- *
- * @deprecated DEBUG is for low volume logging, you don't need this
- * @return true if a {@link #trace(Object)} method invocation would pass
- * the msg to the configured appenders, false otherwise.
- */
- public boolean isDebugEnabled()
- {
- return loggerDelegate.isDebugEnabled();
- }
-
- /**
- * Issue a log msg with a level of DEBUG.
- * Invokes log.log(Level.DEBUG, message);
- */
- public void debug(Object message)
- {
- loggerDelegate.debug(message);
- }
-
- /**
- * Issue a log msg and throwable with a level of DEBUG.
- * Invokes log.log(Level.DEBUG, message, t);
- */
- public void debug(Object message, Throwable t)
- {
- loggerDelegate.debug(message, t);
- }
-
- /**
- * Check to see if the INFO level is enabled for this logger.
- *
- * @deprecated INFO is for low volume information, you don't need this
- * @return true if a {@link #info(Object)} method invocation would pass
- * the msg to the configured appenders, false otherwise.
- */
- public boolean isInfoEnabled()
- {
- return loggerDelegate.isInfoEnabled();
- }
-
- /**
- * Issue a log msg with a level of INFO.
- * Invokes log.log(Level.INFO, message);
- */
- public void info(Object message)
- {
- loggerDelegate.info(message);
- }
-
- /**
- * Issue a log msg and throwable with a level of INFO.
- * Invokes log.log(Level.INFO, message, t);
- */
- public void info(Object message, Throwable t)
- {
- loggerDelegate.info(message, t);
- }
-
- /**
- * Issue a log msg with a level of WARN.
- * Invokes log.log(Level.WARN, message);
- */
- public void warn(Object message)
- {
- loggerDelegate.warn(message);
- }
-
- /**
- * Issue a log msg and throwable with a level of WARN.
- * Invokes log.log(Level.WARN, message, t);
- */
- public void warn(Object message, Throwable t)
- {
- loggerDelegate.warn(message, t);
- }
-
- /**
- * Issue a log msg with a level of ERROR.
- * Invokes log.log(Level.ERROR, message);
- */
- public void error(Object message)
- {
- loggerDelegate.error(message);
- }
-
- /**
- * Issue a log msg and throwable with a level of ERROR.
- * Invokes log.log(Level.ERROR, message, t);
- */
- public void error(Object message, Throwable t)
- {
- loggerDelegate.error(message, t);
- }
-
- /**
- * Issue a log msg with a level of FATAL.
- * Invokes log.log(Level.FATAL, message);
- */
- public void fatal(Object message)
- {
- loggerDelegate.fatal(message);
- }
-
- /**
- * Issue a log msg and throwable with a level of FATAL.
- * Invokes log.log(Level.FATAL, message, t);
- */
- public void fatal(Object message, Throwable t)
- {
- loggerDelegate.fatal(message, t);
- }
-
- /////////////////////////////////////////////////////////////////////////
- // Custom Serialization //
- /////////////////////////////////////////////////////////////////////////
-
- private void readObject(java.io.ObjectInputStream stream)
- throws java.io.IOException, ClassNotFoundException
- {
- // restore non-transient fields (aka name)
- stream.defaultReadObject();
-
- // Restore logging
- if (pluginClass == null)
- {
- init();
- }
- this.loggerDelegate = getDelegatePlugin(name);
- }
-
-
- /////////////////////////////////////////////////////////////////////////
- // Factory Methods //
- /////////////////////////////////////////////////////////////////////////
-
- /**
- * Create a Logger instance given the logger name.
- *
- * @param name the logger name
- */
- public static Logger getLogger(String name)
- {
- return new Logger(name);
- }
-
- /**
- * Create a Logger instance given the logger name with the given suffix.
- *
- * <p>This will include a logger seperator between classname and suffix
- *
- * @param name The logger name
- * @param suffix A suffix to append to the classname.
- */
- public static Logger getLogger(String name, String suffix)
- {
- return new Logger(name + "." + suffix);
- }
-
- /**
- * Create a Logger instance given the logger class. This simply
- * calls create(clazz.getName()).
- *
- * @param clazz the Class whose name will be used as the logger name
- */
- public static Logger getLogger(Class clazz)
- {
- return new Logger(clazz.getName());
- }
-
- /**
- * Create a Logger instance given the logger class with the given suffix.
- *
- * <p>This will include a logger seperator between classname and suffix
- *
- * @param clazz The Class whose name will be used as the logger name.
- * @param suffix A suffix to append to the classname.
- */
- public static Logger getLogger(Class clazz, String suffix)
- {
- return new Logger(clazz.getName() + "." + suffix);
- }
-
- protected static LoggerPlugin getDelegatePlugin(String name)
- {
- LoggerPlugin plugin = null;
- try
- {
- plugin = (LoggerPlugin) pluginClass.newInstance();
- }
- catch (Throwable e)
- {
- plugin = new NullLoggerPlugin();
- }
- try
- {
- plugin.init(name);
- }
- catch(Throwable e)
- {
- System.err.println("Failed to initalize plugin: "+plugin);
- plugin = new NullLoggerPlugin();
- }
-
- return plugin;
- }
-
- /** Initialize the LoggerPlugin class to use as the delegate to the
- * logging system. This first checks to see if a pluginClassName has
- * been specified via the {@link #setPluginClassName(String)} method,
- * then the PLUGIN_CLASS_PROP system property and finally the
- * LOG4J_PLUGIN_CLASS_NAME default. If the LoggerPlugin implementation
- * class cannot be loaded the default NullLoggerPlugin will be used.
- */
- protected static void init()
- {
- try
- {
- // See if there is a PLUGIN_CLASS_PROP specified
- if( pluginClassName == null )
- {
- pluginClassName = System.getProperty(PLUGIN_CLASS_PROP, LOG4J_PLUGIN_CLASS_NAME);
- }
-
- // Try to load the plugin via the TCL
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
- pluginClass = cl.loadClass(pluginClassName);
- }
- catch (Throwable e)
- {
- // The plugin could not be setup, default to a null logger
- pluginClass = org.jboss.logging.NullLoggerPlugin.class;
- }
- }
-}
More information about the jboss-svn-commits
mailing list