You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2003/12/06 14:10:39 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/util/logging LoggerFactoryImpl.java Log4jLoggerImpl.java

brj         2003/12/06 05:10:39

  Modified:    src/java/org/apache/ojb/broker/util/logging
                        LoggerFactoryImpl.java Log4jLoggerImpl.java
  Log:
  fixed log4j dependency (patch by Michael Becke)
  
  Revision  Changes    Path
  1.12      +5 -83     db-ojb/src/java/org/apache/ojb/broker/util/logging/LoggerFactoryImpl.java
  
  Index: LoggerFactoryImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/util/logging/LoggerFactoryImpl.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- LoggerFactoryImpl.java	6 Mar 2003 14:41:46 -0000	1.11
  +++ LoggerFactoryImpl.java	6 Dec 2003 13:10:39 -0000	1.12
  @@ -56,17 +56,13 @@
   
   //OJB
   
  -import org.apache.log4j.LogManager;
  -import org.apache.log4j.PropertyConfigurator;
  +import java.util.HashMap;
  +import java.util.Map;
  +
   import org.apache.ojb.broker.util.ClassHelper;
   import org.apache.ojb.broker.util.configuration.Configurator;
   import org.apache.ojb.broker.util.configuration.impl.OjbConfigurator;
   
  -import java.net.URL;
  -import java.util.Enumeration;
  -import java.util.HashMap;
  -import java.util.Map;
  -
   /**
    * The factory class <code>LoggerFactory</code> can be used
    * to create <code>Logger</code> instances.
  @@ -92,9 +88,6 @@
       /** Used for caching logger instances */
       Map cache = new HashMap();
   
  -    /** flag about log4j configuration state */
  -    private boolean log4jConfigured = false;
  -
       // yes. it's a singleton !
       private LoggerFactoryImpl()
       {
  @@ -187,10 +180,7 @@
               if (logger instanceof Log4jLoggerImpl)
               {
                   getBootLogger().debug("Initializing Log4j logger instance " + loggerName);
  -                if (!isLog4JConfigured())
  -                {
  -                    initializeLog4JSubSystem(lc.getLoggerConfigFile());
  -                }
  +                logger.configure(lc);
               }
               else if (logger instanceof PoorMansLoggerImpl)
               {
  @@ -226,74 +216,6 @@
               logger.error("[" + this.getClass().getName() + "]   Could not set logger for class " + loggerClass, t);
           }
           return logger;
  -    }
  -
  -
  -    /**
  -     * Helper method to check if log4j is already configured
  -     */
  -    synchronized boolean isLog4JConfigured()
  -    {
  -        if (log4jConfigured)
  -            return true;
  -
  -        Enumeration enum = org.apache.log4j.Logger.getRootLogger().getAllAppenders();
  -
  -        if (!(enum instanceof org.apache.log4j.helpers.NullEnumeration))
  -        {
  -            log4jConfigured = true;
  -            return true;
  -        }
  -        else
  -        {
  -            Enumeration cats = LogManager.getCurrentLoggers();
  -            while (cats.hasMoreElements())
  -            {
  -                org.apache.log4j.Logger c = (org.apache.log4j.Logger) cats.nextElement();
  -                if (!(c.getAllAppenders() instanceof org.apache.log4j.helpers.NullEnumeration))
  -                {
  -                    log4jConfigured = true;
  -                    return true;
  -                }
  -            }
  -        }
  -        return false;
  -    }
  -
  -
  -    /**
  -     * Initialization of log4j <br>
  -     * <b>NOTE</b>  - if log4j property file is called log4j.properties then
  -     * log4j will be configured already.
  -     *
  -     */
  -    synchronized void initializeLog4JSubSystem(String configFile)
  -    {
  -        getBootLogger().info("Initializing Log4J using file:" + configFile);
  -        if (configFile != null)
  -        {
  -            // try resource look in classpath
  -            URL url = Thread.currentThread().getContextClassLoader().getResource(configFile);
  -            getBootLogger().info("Initializing Log4J : resource from config file:" + url);
  -            if (url != null)
  -            {
  -                PropertyConfigurator.configure(url);
  -            }
  -
  -            // if file is not in classpath try ordinary filesystem lookup
  -            else if (configFile != "")
  -            {
  -                PropertyConfigurator.configure(configFile);
  -            }
  -            else
  -            {
  -                // no configuration available
  -            }
  -        }
  -        else
  -        {
  -            // no configuration available
  -        }
       }
   
   }
  
  
  
  1.12      +79 -4     db-ojb/src/java/org/apache/ojb/broker/util/logging/Log4jLoggerImpl.java
  
  Index: Log4jLoggerImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/util/logging/Log4jLoggerImpl.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- Log4jLoggerImpl.java	13 Mar 2003 19:56:33 -0000	1.11
  +++ Log4jLoggerImpl.java	6 Dec 2003 13:10:39 -0000	1.12
  @@ -54,9 +54,13 @@
    * <http://www.apache.org/>.
    */
   
  +import java.net.URL;
  +import java.util.Enumeration;
   import java.util.HashMap;
   
  +import org.apache.log4j.LogManager;
   import org.apache.log4j.Priority;
  +import org.apache.log4j.PropertyConfigurator;
   import org.apache.ojb.broker.util.configuration.Configuration;
   import org.apache.ojb.broker.util.configuration.ConfigurationException;
   
  @@ -85,6 +89,9 @@
   
   	static private final String FQCN = Log4jLoggerImpl.class.getName();
   
  +    /** flag about log4j configuration state */
  +    private static boolean log4jConfigured = false;
  +
   	static {
   		priorityMap = new HashMap();
   		priorityMap.put(new Integer(Logger.DEBUG), Priority.DEBUG);
  @@ -94,6 +101,72 @@
   		priorityMap.put(new Integer(Logger.FATAL), Priority.FATAL);
   	}
   
  +    /**
  +     * Helper method to check if log4j is already configured
  +     */
  +    private static synchronized boolean isLog4JConfigured()
  +    {
  +        if (log4jConfigured)
  +            return true;
  +
  +        Enumeration enum = org.apache.log4j.Logger.getRootLogger().getAllAppenders();
  +
  +        if (!(enum instanceof org.apache.log4j.helpers.NullEnumeration))
  +        {
  +            log4jConfigured = true;
  +            return true;
  +        }
  +        else
  +        {
  +            Enumeration cats = LogManager.getCurrentLoggers();
  +            while (cats.hasMoreElements())
  +            {
  +                org.apache.log4j.Logger c = (org.apache.log4j.Logger) cats.nextElement();
  +                if (!(c.getAllAppenders() instanceof org.apache.log4j.helpers.NullEnumeration))
  +                {
  +                    log4jConfigured = true;
  +                    return true;
  +                }
  +            }
  +        }
  +        return false;
  +    }
  +
  +    /**
  +     * Initialization of log4j <br>
  +     * <b>NOTE</b>  - if log4j property file is called log4j.properties then
  +     * log4j will be configured already.
  +     *
  +     */
  +    private static synchronized void initializeLog4JSubSystem(String configFile)
  +    {
  +        LoggerFactory.getBootLogger().info("Initializing Log4J using file:" + configFile);
  +        if (configFile != null)
  +        {
  +            // try resource look in classpath
  +            URL url = Thread.currentThread().getContextClassLoader().getResource(configFile);
  +            LoggerFactory.getBootLogger().info("Initializing Log4J : resource from config file:" + url);
  +            if (url != null)
  +            {
  +                PropertyConfigurator.configure(url);
  +            }
  +
  +            // if file is not in classpath try ordinary filesystem lookup
  +            else if (configFile != "")
  +            {
  +                PropertyConfigurator.configure(configFile);
  +            }
  +            else
  +            {
  +                // no configuration available
  +            }
  +        }
  +        else
  +        {
  +            // no configuration available
  +        }
  +    }
  +
   	public Log4jLoggerImpl(String name)
   	{
   		this.name = name;
  @@ -386,13 +459,15 @@
   	}
   
   	/**
  -	 * This impl just throws UnsupporteOperationException because Log4j logger have a centrilized configuration/initialization system
  -	 *
   	 * @see org.apache.ojb.broker.util.configuration.Configurable#configure(Configuration)
   	 */
   	public void configure(Configuration config) throws ConfigurationException
   	{
  -		throw new UnsupportedOperationException("Log4j loggers can't be individually initialized !");
  +        if (!isLog4JConfigured())
  +        {
  +            LoggingConfiguration lc = (LoggingConfiguration) config;
  +            initializeLog4JSubSystem(lc.getLoggerConfigFile());
  +        }
   	}
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org