db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arm...@apache.org
Subject cvs commit: db-ojb/src/test/org/apache/ojb commons-logging.properties log4j.properties OJB-logging.properties
Date Sat, 19 Nov 2005 13:33:56 GMT
arminw      2005/11/19 05:33:56

  Modified:    src/java/org/apache/ojb/broker/util/logging
                        CommonsLoggerImpl.java Log4jLoggerImpl.java
                        LoggerFactoryImpl.java PoorMansLoggerImpl.java
               src/test/org/apache/ojb commons-logging.properties
                        log4j.properties OJB-logging.properties
  Added:       src/java/org/apache/ojb/broker/util/logging
                        StringBufferLoggerImpl.java
  Log:
  1. Improve logging, while OJB bootstrap process all boot log messages are written in a buffer.
On the first #getLogger(...) call OJB checks for logging environment:
  - When logging environment is found initialize logger, get message string from StringBufferLogger
and log it as normal info message in logger.
  - Logging environment is missing or fails on initialization, then use PoorMansLogger as
logger and log StringBufferLogger message string as error.
  2. Update logging properties files
  
  Revision  Changes    Path
  1.7       +3 -3      db-ojb/src/java/org/apache/ojb/broker/util/logging/CommonsLoggerImpl.java
  
  Index: CommonsLoggerImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/util/logging/CommonsLoggerImpl.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- CommonsLoggerImpl.java	3 Sep 2005 18:07:59 -0000	1.6
  +++ CommonsLoggerImpl.java	19 Nov 2005 13:33:55 -0000	1.7
  @@ -49,8 +49,8 @@
   	public Log getLog()
   	{
   		/*
  -		arminw: Log is declared 'transient', thus we have to null-check
  -		this field
  +        Log is declared 'transient', thus we have to null-check
  +		this field because Logger interface extends Serializable
   		*/
           if(log == null)
           {
  
  
  
  1.20      +348 -326  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.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Log4jLoggerImpl.java	3 Sep 2005 18:07:59 -0000	1.19
  +++ Log4jLoggerImpl.java	19 Nov 2005 13:33:55 -0000	1.20
  @@ -18,8 +18,8 @@
   import java.net.URL;
   import java.util.Enumeration;
   
  -import org.apache.log4j.LogManager;
   import org.apache.log4j.Level;
  +import org.apache.log4j.LogManager;
   import org.apache.log4j.PropertyConfigurator;
   import org.apache.ojb.broker.util.ClassHelper;
   
  @@ -42,64 +42,70 @@
    */
   public class Log4jLoggerImpl implements Logger
   {
  -	static private final String FQCN = Log4jLoggerImpl.class.getName();
  +    static private final String FQCN = Log4jLoggerImpl.class.getName();
       /** flag about log4j configuration state */
       private static boolean log4jConfigured = false;
   
       private transient org.apache.log4j.Logger logger;
  -	private String name;
  +    private String name;
   
  -    /**
  -     * Helper method to check if log4j is already configured
  -     */
  +    /** Helper method to check if log4j is already configured */
       private static synchronized boolean isLog4JConfigured()
       {
  -        if (log4jConfigured)
  -            return true;
  -
  -        Enumeration en = org.apache.log4j.Logger.getRootLogger().getAllAppenders();
  -
  -        if (!(en instanceof org.apache.log4j.helpers.NullEnumeration))
  +        if(!log4jConfigured)
           {
  -            log4jConfigured = true;
  -            return true;
  -        }
  -        else
  -        {
  -            Enumeration cats = LogManager.getCurrentLoggers();
  -            while (cats.hasMoreElements())
  +            Enumeration en = org.apache.log4j.Logger.getRootLogger().getAllAppenders();
  +
  +            if(!(en instanceof org.apache.log4j.helpers.NullEnumeration))
  +            {
  +                log4jConfigured = true;
  +            }
  +            else
               {
  -                org.apache.log4j.Logger c = (org.apache.log4j.Logger) cats.nextElement();
  -                if (!(c.getAllAppenders() instanceof org.apache.log4j.helpers.NullEnumeration))
  +                Enumeration cats = LogManager.getCurrentLoggers();
  +                while(cats.hasMoreElements())
                   {
  -                    log4jConfigured = true;
  -                    return true;
  +                    org.apache.log4j.Logger c = (org.apache.log4j.Logger) cats.nextElement();
  +                    if(!(c.getAllAppenders() instanceof org.apache.log4j.helpers.NullEnumeration))
  +                    {
  +                        log4jConfigured = true;
  +                    }
                   }
               }
  +            if(log4jConfigured)
  +            {
  +                String msg = "Log4J is already configured, will not search for log4j properties
file";
  +                LoggerFactory.getBootLogger().info(msg);
  +            }
  +            else
  +            {
  +                LoggerFactory.getBootLogger().info("Log4J is not configured");
  +            }
           }
  -        return false;
  +        return log4jConfigured;
       }
   
       /**
        * 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);
  +        LoggerFactory.getBootLogger().info("Initializing Log4J using file: '" + configFile
+ "'");
           if(configFile == null || "".equals(configFile.trim()))
           {
               // no configuration available
  +            LoggerFactory.getBootLogger().warn("No log4j configuration file specified");
  +            log4jConfigured = true;
           }
           else
           {
               // try resource look in classpath
               URL url = ClassHelper.getResource(configFile);
  -            LoggerFactory.getBootLogger().info("Initializing Log4J : resource from config
file:" + url);
  -            if (url != null)
  +            if(url != null)
               {
  +                LoggerFactory.getBootLogger().info("Initializing Log4J, resource from config
file: " + url);
                   PropertyConfigurator.configure(url);
               }
               // if file is not in classpath try ordinary filesystem lookup
  @@ -107,310 +113,326 @@
               {
                   PropertyConfigurator.configure(configFile);
               }
  +            log4jConfigured = true;
  +        }
  +    }
  +
  +    public Log4jLoggerImpl(String name, LoggingConfiguration conf)
  +    {
  +        this.name = name;
  +        if(!isLog4JConfigured())
  +        {
  +            initializeLog4JSubSystem(conf.getLoggerConfigFile());
  +        }
  +        logger = org.apache.log4j.Logger.getLogger(name);
  +    }
  +
  +    /**
  +     * Gets the logger.
  +     *
  +     * @return Returns a Category
  +     */
  +    private org.apache.log4j.Logger getLogger()
  +    {
  +        /*
  +        Log is declared 'transient', thus we have to null-check
  +		this field because Logger interface extends Serializable
  +		*/
  +        if(logger == null)
  +        {
  +            logger = org.apache.log4j.Logger.getLogger(name);
  +        }
  +        return logger;
  +    }
  +
  +    public String getName()
  +    {
  +        return name;
  +    }
  +
  +    private Level getLevel()
  +    {
  +        return getLogger().getEffectiveLevel();
  +    }
  +
  +    /**
  +     * generate a message for loglevel DEBUG
  +     *
  +     * @param pObject the message Object
  +     */
  +    public final void debug(Object pObject)
  +    {
  +        getLogger().log(FQCN, Level.DEBUG, pObject, null);
  +    }
  +
  +    /**
  +     * generate a message for loglevel INFO
  +     *
  +     * @param pObject the message Object
  +     */
  +    public final void info(Object pObject)
  +    {
  +        getLogger().log(FQCN, Level.INFO, pObject, null);
  +    }
  +
  +    /**
  +     * generate a message for loglevel WARN
  +     *
  +     * @param pObject the message Object
  +     */
  +    public final void warn(Object pObject)
  +    {
  +        getLogger().log(FQCN, Level.WARN, pObject, null);
  +    }
  +
  +    /**
  +     * generate a message for loglevel ERROR
  +     *
  +     * @param pObject the message Object
  +     */
  +    public final void error(Object pObject)
  +    {
  +        getLogger().log(FQCN, Level.ERROR, pObject, null);
  +    }
  +
  +    /**
  +     * generate a message for loglevel FATAL
  +     *
  +     * @param pObject the message Object
  +     */
  +    public final void fatal(Object pObject)
  +    {
  +        getLogger().log(FQCN, Level.FATAL, pObject, null);
  +    }
  +
  +    public void debug(Object message, Throwable obj)
  +    {
  +        getLogger().log(FQCN, Level.DEBUG, message, obj);
  +    }
  +
  +    public void error(Object message, Throwable obj)
  +    {
  +        getLogger().log(FQCN, Level.ERROR, message, obj);
  +    }
  +
  +    public void fatal(Object message, Throwable obj)
  +    {
  +        getLogger().log(FQCN, Level.FATAL, message, obj);
  +    }
  +
  +    public void info(Object message, Throwable obj)
  +    {
  +        getLogger().log(FQCN, Level.INFO, message, obj);
  +    }
  +
  +    public void warn(Object message, Throwable obj)
  +    {
  +        getLogger().log(FQCN, Level.WARN, message, obj);
  +    }
  +
  +    public void safeDebug(String message, Object obj)
  +    {
  +        if(Level.DEBUG.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString = null;
  +            if(obj != null)
  +            {
  +                try
  +                {
  +                    toString = obj.toString();
  +                }
  +                catch(Throwable t)
  +                {
  +                    toString = "BAD toString() impl for " + obj.getClass().getName();
  +                }
  +            }
  +            debug(message + " : " + toString);
  +        }
  +    }
  +
  +    public void safeDebug(String message, Object obj, Throwable throwable)
  +    {
  +        if(Level.DEBUG.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString = null;
  +            if(obj != null)
  +            {
  +                try
  +                {
  +                    toString = obj.toString();
  +                }
  +                catch(Throwable t)
  +                {
  +                    toString = "BAD toString() impl for " + obj.getClass().getName();
  +                }
  +            }
  +            debug(message + " : " + toString, throwable);
  +        }
  +    }
  +
  +    public void safeInfo(String message, Object obj)
  +    {
  +        if(Level.INFO.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString = null;
  +            if(obj != null)
  +            {
  +                try
  +                {
  +                    toString = obj.toString();
  +                }
  +                catch(Throwable t)
  +                {
  +                    toString = "BAD toString() impl for " + obj.getClass().getName();
  +                }
  +            }
  +            info(message + " : " + toString);
  +        }
  +    }
  +
  +    public void safeInfo(String message, Object obj, Throwable throwable)
  +    {
  +        if(Level.INFO.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString = null;
  +            if(obj != null)
  +            {
  +                try
  +                {
  +                    toString = obj.toString();
  +                }
  +                catch(Throwable t)
  +                {
  +                    toString = "BAD toString() impl for " + obj.getClass().getName();
  +                }
  +            }
  +            info(message + " : " + toString, throwable);
  +        }
  +    }
  +
  +    public void safeWarn(String message, Object obj)
  +    {
  +        if(Level.WARN.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString;
  +            try
  +            {
  +                toString = obj.toString();
  +            }
  +            catch(Throwable t)
  +            {
  +                toString = "BAD toString() impl for " + obj.getClass().getName();
  +            }
  +            warn(message + " : " + toString);
  +        }
  +    }
  +
  +    public void safeWarn(String message, Object obj, Throwable throwable)
  +    {
  +        if(Level.WARN.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString;
  +            try
  +            {
  +                toString = obj.toString();
  +            }
  +            catch(Throwable t)
  +            {
  +                toString = "BAD toString() impl for " + obj.getClass().getName();
  +            }
  +            warn(message + " : " + toString, throwable);
  +        }
  +    }
  +
  +    public void safeError(String message, Object obj)
  +    {
  +        if(Level.ERROR.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString;
  +            try
  +            {
  +                toString = obj.toString();
  +            }
  +            catch(Throwable t)
  +            {
  +                toString = "BAD toString() impl for " + obj.getClass().getName();
               }
  +            error(message + " : " + toString);
           }
  +    }
   
  -	public Log4jLoggerImpl(String name, LoggingConfiguration conf)
  -	{
  -		this.name = name;
  -		logger = org.apache.log4j.Logger.getLogger(name);
  -	}
  -
  -	/**
  -	 * Gets the logger.
  -	 * @return Returns a Category
  -	 */
  -	private org.apache.log4j.Logger getLogger()
  -	{
  -		if (logger == null)
  -		{
  -            if (!isLog4JConfigured())
  -            {
  -                initializeLog4JSubSystem(getName());
  -            }
  -			logger = org.apache.log4j.Logger.getLogger(name);
  -		}
  -		return logger;
  -	}
  -
  -	public String getName()
  -	{
  -		return name;
  -	}
  -
  -	private Level getLevel()
  -	{
  -		return getLogger().getEffectiveLevel();
  -	}
  -
  -	/**
  -	 * generate a message for loglevel DEBUG
  -	 * @param pObject the message Object
  -	 */
  -	public final void debug(Object pObject)
  -	{
  -		getLogger().log(FQCN, Level.DEBUG, pObject, null);
  -	}
  -
  -	/**
  -	 * generate a message for loglevel INFO
  -	 * @param pObject the message Object
  -	 */
  -	public final void info(Object pObject)
  -	{
  -		getLogger().log(FQCN, Level.INFO, pObject, null);
  -	}
  -
  -	/**
  -	 * generate a message for loglevel WARN
  -	 * @param pObject the message Object
  -	 */
  -	public final void warn(Object pObject)
  -	{
  -		getLogger().log(FQCN, Level.WARN, pObject, null);
  -	}
  -
  -	/**
  -	 * generate a message for loglevel ERROR
  -	 * @param pObject the message Object
  -	 */
  -	public final void error(Object pObject)
  -	{
  -		getLogger().log(FQCN, Level.ERROR, pObject, null);
  -	}
  -
  -	/**
  -	 * generate a message for loglevel FATAL
  -	 * @param pObject the message Object
  -	 */
  -	public final void fatal(Object pObject)
  -	{
  -		getLogger().log(FQCN, Level.FATAL, pObject, null);
  -	}
  -
  -	public void debug(Object message, Throwable obj)
  -	{
  -		getLogger().log(FQCN, Level.DEBUG, message, obj);
  -	}
  -
  -	public void error(Object message, Throwable obj)
  -	{
  -		getLogger().log(FQCN, Level.ERROR, message, obj);
  -	}
  -
  -	public void fatal(Object message, Throwable obj)
  -	{
  -		getLogger().log(FQCN, Level.FATAL, message, obj);
  -	}
  -
  -	public void info(Object message, Throwable obj)
  -	{
  -		getLogger().log(FQCN, Level.INFO, message, obj);
  -	}
  -
  -	public void warn(Object message, Throwable obj)
  -	{
  -		getLogger().log(FQCN, Level.WARN, message, obj);
  -	}
  -
  -	public void safeDebug(String message, Object obj)
  -	{
  -		if (Level.DEBUG.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString = null;
  -			if (obj != null)
  -			{
  -				try
  -				{
  -					toString = obj.toString();
  -				}
  -				catch (Throwable t)
  -				{
  -					toString = "BAD toString() impl for " + obj.getClass().getName();
  -				}
  -			}
  -			debug(message + " : " + toString);
  -		}
  -	}
  -
  -	public void safeDebug(String message, Object obj, Throwable throwable)
  -	{
  -		if (Level.DEBUG.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString = null;
  -			if (obj != null)
  -			{
  -				try
  -				{
  -					toString = obj.toString();
  -				}
  -				catch (Throwable t)
  -				{
  -					toString = "BAD toString() impl for " + obj.getClass().getName();
  -				}
  -			}
  -			debug(message + " : " + toString, throwable);
  -		}
  -	}
  -
  -	public void safeInfo(String message, Object obj)
  -	{
  -		if (Level.INFO.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString = null;
  -			if (obj != null)
  -			{
  -				try
  -				{
  -					toString = obj.toString();
  -				}
  -				catch (Throwable t)
  -				{
  -					toString = "BAD toString() impl for " + obj.getClass().getName();
  -				}
  -			}
  -			info(message + " : " + toString);
  -		}
  -	}
  -
  -	public void safeInfo(String message, Object obj, Throwable throwable)
  -	{
  -		if (Level.INFO.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString = null;
  -			if (obj != null)
  -			{
  -				try
  -				{
  -					toString = obj.toString();
  -				}
  -				catch (Throwable t)
  -				{
  -					toString = "BAD toString() impl for " + obj.getClass().getName();
  -				}
  -			}
  -			info(message + " : " + toString, throwable);
  -		}
  -	}
  -
  -	public void safeWarn(String message, Object obj)
  -	{
  -		if (Level.WARN.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString;
  -			try
  -			{
  -				toString = obj.toString();
  -			}
  -			catch (Throwable t)
  -			{
  -				toString = "BAD toString() impl for " + obj.getClass().getName();
  -			}
  -			 warn(message + " : " + toString);
  -		}
  -	}
  -
  -	public void safeWarn(String message, Object obj, Throwable throwable)
  -	{
  -		if (Level.WARN.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString;
  -			try
  -			{
  -				toString = obj.toString();
  -			}
  -			catch (Throwable t)
  -			{
  -				toString = "BAD toString() impl for " + obj.getClass().getName();
  -			}
  -			warn(message + " : " + toString, throwable);
  -		}
  -	}
  -
  -	public void safeError(String message, Object obj)
  -	{
  -		if (Level.ERROR.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString;
  -			try
  -			{
  -				toString = obj.toString();
  -			}
  -			catch (Throwable t)
  -			{
  -				toString = "BAD toString() impl for " + obj.getClass().getName();
  -			}
  -			error(message + " : " + toString);
  -		}
  -	}
  -
  -	public void safeError(String message, Object obj, Throwable throwable)
  -	{
  -		if (Level.ERROR.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString;
  -			try
  -			{
  -				toString = obj.toString();
  -			}
  -			catch (Throwable t)
  -			{
  -				toString = "BAD toString() impl for " + obj.getClass().getName();
  -			}
  -			error(message + " : " + toString, throwable);
  -		}
  -	}
  -
  -	public void safeFatal(String message, Object obj)
  -	{
  -		if (Level.FATAL.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString;
  -			try
  -			{
  -				toString = obj.toString();
  -			}
  -			catch (Throwable t)
  -			{
  -				toString = "BAD toString() impl for " + obj.getClass().getName();
  -			}
  -			fatal(message + " : " + toString);
  -		}
  -	}
  -
  -	public void safeFatal(String message, Object obj, Throwable throwable)
  -	{
  -		if (Level.FATAL.isGreaterOrEqual(getLevel()))
  -		{
  -			String toString;
  -			try
  -			{
  -				toString = obj.toString();
  -			}
  -			catch (Throwable t)
  -			{
  -				toString = "BAD toString() impl for " + obj.getClass().getName();
  -			}
  -			fatal(message + " : " + toString, throwable);
  -		}
  -	}
  -
  -	public boolean isDebugEnabled()
  -	{
  -		return getLogger().isDebugEnabled();
  -	}
  +    public void safeError(String message, Object obj, Throwable throwable)
  +    {
  +        if(Level.ERROR.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString;
  +            try
  +            {
  +                toString = obj.toString();
  +            }
  +            catch(Throwable t)
  +            {
  +                toString = "BAD toString() impl for " + obj.getClass().getName();
  +            }
  +            error(message + " : " + toString, throwable);
  +        }
  +    }
   
  -	public boolean isEnabledFor(int priority)
  -	{
  +    public void safeFatal(String message, Object obj)
  +    {
  +        if(Level.FATAL.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString;
  +            try
  +            {
  +                toString = obj.toString();
  +            }
  +            catch(Throwable t)
  +            {
  +                toString = "BAD toString() impl for " + obj.getClass().getName();
  +            }
  +            fatal(message + " : " + toString);
  +        }
  +    }
  +
  +    public void safeFatal(String message, Object obj, Throwable throwable)
  +    {
  +        if(Level.FATAL.isGreaterOrEqual(getLevel()))
  +        {
  +            String toString;
  +            try
  +            {
  +                toString = obj.toString();
  +            }
  +            catch(Throwable t)
  +            {
  +                toString = "BAD toString() impl for " + obj.getClass().getName();
  +            }
  +            fatal(message + " : " + toString, throwable);
  +        }
  +    }
  +
  +    public boolean isDebugEnabled()
  +    {
  +        return getLogger().isDebugEnabled();
  +    }
  +
  +    public boolean isEnabledFor(int priority)
  +    {
           org.apache.log4j.Logger log4j = getLogger();
           switch(priority)
           {
  -            case Logger.DEBUG: return log4j.isDebugEnabled();
  -            case Logger.INFO: return log4j.isInfoEnabled();
  -            case Logger.WARN: return log4j.isEnabledFor(org.apache.log4j.Priority.WARN);
  -            case Logger.ERROR: return log4j.isEnabledFor(org.apache.log4j.Priority.ERROR);
  -            case Logger.FATAL: return log4j.isEnabledFor(org.apache.log4j.Priority.FATAL);
  -	    }
  +            case Logger.DEBUG:
  +                return log4j.isDebugEnabled();
  +            case Logger.INFO:
  +                return log4j.isInfoEnabled();
  +            case Logger.WARN:
  +                return log4j.isEnabledFor(org.apache.log4j.Priority.WARN);
  +            case Logger.ERROR:
  +                return log4j.isEnabledFor(org.apache.log4j.Priority.ERROR);
  +            case Logger.FATAL:
  +                return log4j.isEnabledFor(org.apache.log4j.Priority.FATAL);
  +        }
           return false;
       }
   }
  
  
  
  1.24      +104 -26   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.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- LoggerFactoryImpl.java	9 Nov 2005 01:17:00 -0000	1.23
  +++ LoggerFactoryImpl.java	19 Nov 2005 13:33:55 -0000	1.24
  @@ -18,6 +18,7 @@
   import java.util.HashMap;
   import java.util.Map;
   
  +import org.apache.commons.lang.SystemUtils;
   import org.apache.ojb.broker.util.ClassHelper;
   
   /**
  @@ -34,23 +35,28 @@
    */
   public class LoggerFactoryImpl
   {
  +    public static final String BOOT_LOG_LEVERL_STR = "OJB.bootLogLevel";
  +    public static final String BOOT_STR = "BOOT";
  +    public static final String DEFAULT_STR = "BOOT";
       public static final LoggerFactoryImpl INSTANCE = new LoggerFactoryImpl();
   
       private Logger defaultLogger = null;
   
       private Logger bootLogger = null;
   
  +    private boolean bootLoggerIsReassigned = false;
  +
       /** Used for caching logger instances */
       private Map cache = new HashMap();
       /** The configuration */
       private LoggingConfiguration conf;
  -    
  +
       // yes. it's a singleton !
       private LoggerFactoryImpl()
       {
   
       }
  -    
  +
       public static LoggerFactoryImpl getInstance()
       {
           return INSTANCE;
  @@ -58,7 +64,7 @@
   
       private LoggingConfiguration getConfiguration()
       {
  -        if (conf == null)
  +        if(conf == null)
           {
               // this will load the configuration
               conf = new LoggingConfiguration();
  @@ -75,12 +81,10 @@
        */
       public Logger getBootLogger()
       {
  -        if (bootLogger == null)
  +        if(bootLogger == null)
           {
  -            bootLogger = new PoorMansLoggerImpl("BOOT", null);
  -            // allow user to set boot log level via system property
  -            String level = System.getProperty("OJB.bootLogLevel", LoggingConfiguration.OJB_DEFAULT_BOOT_LOG_LEVEL);
  -            ((PoorMansLoggerImpl) bootLogger).setLevel(level);
  +            // create a StringBuffer based Logger for boot log operations
  +            bootLogger = createStringBufferLogger_Boot();
           }
           return bootLogger;
       }
  @@ -95,9 +99,9 @@
        */
       public Logger getDefaultLogger()
       {
  -        if (defaultLogger == null)
  +        if(defaultLogger == null)
           {
  -            defaultLogger = getLogger("DEFAULT");
  +            defaultLogger = getLogger(DEFAULT_STR);
           }
           return defaultLogger;
       }
  @@ -130,28 +134,102 @@
   
           if(logger == null)
           {
  -            Class  loggerClass = null;
               try
               {
                   // get the configuration (not from the configurator because this is independent)
  -                LoggingConfiguration conf = getConfiguration();
  -
  -                loggerClass = conf.getLoggerClass();
  -                getBootLogger().debug("Using logger class " + loggerClass + " for " + loggerName);
  -                logger = (Logger) ClassHelper.newInstance(loggerClass,
  -                                                          new Class[] { String.class, LoggingConfiguration.class
},
  -                                                          new Object[] { loggerName, conf
});
  -
  -                //cache it so we can get it faster the next time
  -                cache.put(loggerName, logger);
  +                logger = createLoggerInstance(loggerName);
  +                if(getBootLogger().isDebugEnabled())
  +                {
  +                    getBootLogger().debug("Using logger class '"
  +                            + (getConfiguration() != null ? getConfiguration().getLoggerClass()
: null)
  +                            + "' for " + loggerName);
  +                }
  +                // configure the logger
  +                getBootLogger().debug("Initializing logger instance " + loggerName);
               }
  -            catch (Throwable t)
  +            catch(Throwable t)
               {
  +                // do reassign check and signal logger creation failure
  +                reassignBootLogger(true);
                   logger = getBootLogger();
  -                logger.error("[" + this.getClass().getName()
  -                        + "] Could not set logger for class " + (loggerClass != null ?
loggerClass.getName() : "'null'"), t);
  +                getBootLogger().error("[" + this.getClass().getName()
  +                        + "] Could not initialize logger " + (conf != null ? conf.getLoggerClass()
: null), t);
               }
  +            //cache it so we can get it faster the next time
  +            cache.put(loggerName, logger);
  +            // do reassign check
  +            reassignBootLogger(false);
           }
           return logger;
       }
  -}
  +
  +    /** Creates a new Logger instance for the specified name. */
  +    private Logger createLoggerInstance(String loggerName) throws Exception
  +    {
  +        Class loggerClass = getConfiguration().getLoggerClass();
  +        return (Logger) ClassHelper.newInstance(loggerClass,
  +                new Class[]{String.class, LoggingConfiguration.class},
  +                new Object[]{loggerName, conf});
  +    }
  +
  +    /** @param forceError */
  +    protected synchronized void reassignBootLogger(boolean forceError)
  +    {
  +        // if the boot logger was already reassigned do nothing
  +        if(!bootLoggerIsReassigned)
  +        {
  +            Logger newBootLogger = null;
  +            String name = getBootLogger().getName();
  +            try
  +            {
  +                // 1. try to use a Logger instance based on the configuration files
  +                newBootLogger = createLoggerInstance(name);
  +            }
  +            catch(Exception e)
  +            {/*ignore*/}
  +            if(newBootLogger == null)
  +            {
  +                // 2. if no logging library can be found, use OJB's console logger
  +                newBootLogger = createPoorMansLogger_Boot(getConfiguration());
  +            }
  +            if(getBootLogger() instanceof StringBufferLoggerImpl)
  +            {
  +                /*
  +                if the StringBuffer based Logger was used for OJB bootstrap process
  +                get the logging statement string and log it on the "real" Logger instance
  +                */
  +                StringBufferLoggerImpl strLogger = (StringBufferLoggerImpl) getBootLogger();
  +                String bootMessage = strLogger.flushLogBuffer();
  +                String eol = SystemUtils.LINE_SEPARATOR;
  +                if(forceError || strLogger.isErrorLog())
  +                {
  +                    newBootLogger.error("-- boot log messages -->" + eol + bootMessage);
  +                }
  +                else
  +                {
  +                    newBootLogger.info("-- boot log messages -->" + eol + bootMessage);
  +                }
  +            }
  +            bootLogger = newBootLogger;
  +            bootLoggerIsReassigned = true;
  +        }
  +    }
  +
  +    protected Logger createPoorMansLogger_Boot(LoggingConfiguration conf)
  +    {
  +        Logger bootLogger = new PoorMansLoggerImpl(BOOT_STR, conf);
  +        // allow user to set boot log level via system property
  +        String level = System.getProperty(BOOT_LOG_LEVERL_STR, LoggingConfiguration.OJB_DEFAULT_BOOT_LOG_LEVEL);
  +        ((PoorMansLoggerImpl) bootLogger).setLevel(level);
  +        return bootLogger;
  +    }
  +
  +    protected Logger createStringBufferLogger_Boot()
  +    {
  +        Logger bootLogger = new StringBufferLoggerImpl(BOOT_STR, null);
  +        // allow user to set boot log level via system property
  +        String level = System.getProperty(BOOT_LOG_LEVERL_STR, LoggingConfiguration.OJB_DEFAULT_BOOT_LOG_LEVEL);
  +        ((PoorMansLoggerImpl) bootLogger).setLevel(level);
  +        return bootLogger;
  +    }
  +}
  \ No newline at end of file
  
  
  
  1.14      +14 -14    db-ojb/src/java/org/apache/ojb/broker/util/logging/PoorMansLoggerImpl.java
  
  Index: PoorMansLoggerImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/util/logging/PoorMansLoggerImpl.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- PoorMansLoggerImpl.java	3 Sep 2005 18:07:59 -0000	1.13
  +++ PoorMansLoggerImpl.java	19 Nov 2005 13:33:55 -0000	1.14
  @@ -24,20 +24,20 @@
    */
   public class PoorMansLoggerImpl implements Logger
   {
  -    private static final String STR_DEBUG = "DEBUG";
  -    private static final String STR_INFO = "INFO";
  -    private static final String STR_WARN = "WARN";
  -    private static final String STR_ERROR = "ERROR";
  -    private static final String STR_FATAL = "FATAL";
  -
  -    private static final String STR_DEBUG_MSG = "DEBUG: ";
  -    private static final String STR_INFO_MSG = "INFO: ";
  -    private static final String STR_WARN_MSG = "WARN: ";
  -    private static final String STR_ERROR_MSG = "ERROR: ";
  -    private static final String STR_FATAL_MSG = "FATAL: ";
  +    protected static final String STR_DEBUG = "DEBUG";
  +    protected static final String STR_INFO = "INFO";
  +    protected static final String STR_WARN = "WARN";
  +    protected static final String STR_ERROR = "ERROR";
  +    protected static final String STR_FATAL = "FATAL";
  +
  +    protected static final String STR_DEBUG_MSG = "DEBUG: ";
  +    protected static final String STR_INFO_MSG = "INFO: ";
  +    protected static final String STR_WARN_MSG = "WARN: ";
  +    protected static final String STR_ERROR_MSG = "ERROR: ";
  +    protected static final String STR_FATAL_MSG = "FATAL: ";
   
  -    private static final String BRAKE_OPEN = "[";
  -    private static final String BRAKE_CLOSE = "] ";
  +    protected static final String BRAKE_OPEN = "[";
  +    protected static final String BRAKE_CLOSE = "] ";
   
       private String name;
   
  
  
  
  1.2       +106 -0    db-ojb/src/java/org/apache/ojb/broker/util/logging/StringBufferLoggerImpl.java
  
  
  
  
  1.3       +16 -2     db-ojb/src/test/org/apache/ojb/commons-logging.properties
  
  Index: commons-logging.properties
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/commons-logging.properties,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- commons-logging.properties	5 Apr 2004 13:58:59 -0000	1.2
  +++ commons-logging.properties	19 Nov 2005 13:33:55 -0000	1.3
  @@ -16,8 +16,22 @@
   #-->
   #
   # commons-logging config
  +# -----------------------
  +# here can be specified which LogFactory and Log implementation
  +# should be used by commons-logging. If none specified or this
  +# file isn't in classpath, commons-logging use the default
  +# discovery process to determine what type of Log implementation it
  +# should use (see commons-logging documentation).
   #
  -
  -org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
  +#org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
   org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
  +#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
  +#org.apache.commons.logging.Log=org.apache.commons.logging.impl.AvalonLogger
  +#org.apache.commons.logging.Log=org.apache.commons.logging.impl.LogKitLogger
  +#org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
  +# commons-logging version <1.1
  +#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
  +# commons-logging version >=1.1
  +#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4J13Logger
  +#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4J12Logger
   
  
  
  
  1.7       +83 -8     db-ojb/src/test/org/apache/ojb/log4j.properties
  
  Index: log4j.properties
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/log4j.properties,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- log4j.properties	5 Apr 2004 13:58:59 -0000	1.6
  +++ log4j.properties	19 Nov 2005 13:33:55 -0000	1.7
  @@ -16,22 +16,97 @@
   #-->
   # An example log4j configuration file that outputs both to System.out
   # and a file named 'org.apache.ojb.log'.
  -
  +#
   # For the general syntax of property based configuration files see the
   # documenation of org.apache.log4j.PropertyConfigurator.
  -
  +#
   # WARNING: Location information can be useful but is very costly in
   # terms of computation.
  -
  +#
   # The root category uses the appenders called A1 and A2. Since no
   # priority is set, the root category assumes the default which is
   # DEBUG
  -
  +#
   log4j.rootCategory=WARN, A1, A2
  -#log4j.logger.org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl=DEBUG
  -#log4j.logger.org.apache.ojb.broker.metadata.RepositoryXmlHandler=DEBUG
  -#log4j.logger.org.apache.ojb.broker.accesslayer.ConnectionManager=INFO
  -#log4j.logger.org.apache.ojb.odmg=INFO
  +#
  +# The boot log level used to initialize logging
  +log4j.logger.BOOT=INFO
  +#
  +# The Default Logger instance used within OJB
  +log4j.logger.DEFAULT=WARN
  +#
  +# PB-api and Kernel
  +# -----------------
  +# Logger for PB-api base classes
  +log4j.logger.org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl=WARN
  +log4j.logger.org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl=WARN
  +log4j.logger.org.apache.ojb.broker.core.PersistenceBrokerImpl=WARN
  +#
  +# Logger for metadata classes, useful for debugging parsing of repository.xml!
  +# persistence capable object metadata
  +log4j.logger.org.apache.ojb.broker.metadata.DescriptorRepository=WARN
  +log4j.logger.org.apache.ojb.broker.metadata.RepositoryXmlHandler=WARN
  +log4j.logger.org.apache.ojb.broker.metadata.ConnectionDescriptorXmlHandler=WARN
  +log4j.logger.org.apache.ojb.broker.metadata.RepositoryPersistor=WARN
  +log4j.logger.org.apache.ojb.broker.metadata.SuperReferenceDescriptor$SuperReferenceField=WARN
  +#
  +# Logger for jdbc access querying and object materialization, useful
  +# for debugging JDBC related problems
  +log4j.logger.org.apache.ojb.broker.accesslayer.JdbcAccessImpl=WARN
  +log4j.logger.org.apache.ojb.broker.accesslayer.RsIterator=WARN
  +log4j.logger.org.apache.ojb.broker.accesslayer.StatementsForClassImpl=WARN
  +log4j.logger.org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl=WARN
  +#
  +# Jdbc Batch Handling
  +log4j.logger.org.apache.ojb.broker.accesslayer.batch.BatchManagerImpl=WARN
  +log4j.logger.org.apache.ojb.broker.accesslayer.batch.BatchStrategyDefaultImpl=WARN
  +#
  +# Logger for connection handling
  +log4j.logger.org.apache.ojb.broker.accesslayer.ConnectionManagerImpl=WARN
  +log4j.logger.org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl=WARN
  +log4j.logger.org.apache.ojb.broker.accesslayer.ConnectionFactoryPooledImpl=WARN
  +log4j.logger.org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl=WARN
  +#
  +# Logger for object caching
  +log4j.logger.org.apache.ojb.broker.cache.CacheDistributor=WARN
  +log4j.logger.org.apache.ojb.broker.cache.MaterializationCache=WARN
  +log4j.logger.org.apache.ojb.broker.cache.ObjectCacheDefaultImpl=WARN
  +log4j.logger.org.apache.ojb.broker.cache.ObjectCacheJCSImpl=WARN
  +log4j.logger.org.apache.ojb.broker.cache.ObjectCacheOSCacheImpl=WARN
  +#
  +# Logger for Oracle9i platform, useful for tracing failing Oracle-extensions or large LOB-support
  +log4j.logger.org.apache.ojb.broker.platforms.PlatformOracle9iImpl=WARN
  +#
  +# Logger for proxy classes
  +log4j.logger.org.apache.ojb.broker.core.proxy.IndirectionHandlerJDKImpl=WARN
  +log4j.logger.org.apache.ojb.broker.core.proxy.IndirectionHandlerCGLIBImpl=WARN
  +log4j.logger.org.apache.ojb.broker.core.proxy.ProxyFactoryJDKImpl=WARN
  +log4j.logger.org.apache.ojb.broker.core.proxy.ProxyFactoryCGLIBImpl=WARN
  +#
  +# OJB locking implementations
  +log4j.logger.org.apache.ojb.broker.locking.LockManagerInMemoryImpl=WARN
  +log4j.logger.org.apache.ojb.broker.locking.LockManagerCommonsImpl=WARN
  +log4j.logger.org.apache.ojb.broker.locking.LockManagerRemoteImpl=WARN
  +log4j.logger.org.apache.ojb.broker.locking.CommonsOJBLockManager=WARN
  +#
  +# odmg-api
  +# --------
  +log4j.logger.org.apache.ojb.odmg.TransactionImpl=WARN
  +log4j.logger.org.apache.ojb.odmg.J2EETransactionImpl=WARN
  +log4j.logger.org.apache.ojb.odmg.ImplementationImpl=WARN
  +log4j.logger.org.apache.ojb.odmg.DatabaseImpl=WARN
  +log4j.logger.org.apache.ojb.odmg.ObjectEnvelopeTable=WARN
  +log4j.logger.org.apache.ojb.odmg.ObjectEnvelope=WARN
  +log4j.logger.org.apache.ojb.odmg.ObjectEnvelopeOrdering=WARN
  +log4j.logger.org.apache.ojb.odmg.LocalTxManager=WARN
  +log4j.logger.org.apache.ojb.odmg.JTATxManager=WARN
  +#
  +# Special Logger categories used in test suite
  +#
  +# Logger for the performance tests
  +log4j.logger.performance=INFO
  +# Logger for the failover tests
  +log4j.logger.failover=INFO
   
   
   # A1 is set to be ConsoleAppender sending its output to System.out
  
  
  
  1.8       +53 -47    db-ojb/src/test/org/apache/ojb/OJB-logging.properties
  
  Index: OJB-logging.properties
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/OJB-logging.properties,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- OJB-logging.properties	1 Oct 2005 13:50:34 -0000	1.7
  +++ OJB-logging.properties	19 Nov 2005 13:33:55 -0000	1.8
  @@ -14,10 +14,8 @@
   # * limitations under the License.
   # */
   #-->
  +#
   # OJB-logging.properties -- configuration of the logging within the OJB runtime environment
  -# Version: 1.0
  -# (c) 2001, 2002, 2003 Apache Software Foundation
  -# Author: Thomas Mahler and many others
   # @version $Id$
   #----------------------------------------------------------------------------------------
   # The LoggerClass entry tells OJB which concrete Logger implementation is to be used.
  @@ -28,12 +26,19 @@
   #
   # Commons-logging
   #LoggerClass=org.apache.ojb.broker.util.logging.CommonsLoggerImpl
  +#
   # log4j based logging
   #LoggerClass=org.apache.ojb.broker.util.logging.Log4jLoggerImpl
  +# specifiy the name of log4j properties file (only needed if file
  +# name is different from "log4j.properties")
  +#LoggerConfigFile=log4j.properties
  +#
   # OJB's own simple looging support
   LoggerClass=org.apache.ojb.broker.util.logging.PoorMansLoggerImpl
  -LoggerConfigFile=log4j.properties
   #
  +#----------------------------------------------------------------
  +# all following properties are specific to PoorMansLoggerImpl
  +#----------------------------------------------------------------
   # The LogLevel entries tells OJB which LogLevels are active
   # for the different loggers used within OJB
   # Loglevels: DEBUG < INFO < WARN < ERROR < FATAL
  @@ -42,55 +47,62 @@
   #
   # Global default log level used for all logging
   # entities if not specified
  -ROOT.LogLevel=WARN
  +ROOT.LogLevel=ERROR
  +#
  +# The boot log level used to initialize logging
  +BOOT.LogLevel=INFO
   #
   # The Default Logger instance used within OJB
   DEFAULT.LogLevel=WARN
   #
   # PB-api and Kernel
  -#
  -# Logger for PersistenceBrokerImpl class
  -org.apache.ojb.broker.core.PersistenceBrokerImpl.LogLevel=WARN
  -# Logger for PersistenceBrokerFactory class PersistenceBrokerFactoryDefaultImpl
  +# -----------------
  +# Logger for PB-api base classes
   org.apache.ojb.broker.core.PersistenceBrokerFactoryDefaultImpl.LogLevel=WARN
  -# Logger for metadata root class
  -org.apache.ojb.broker.metadata.DescriptorRepository.LogLevel=WARN
  -# Logger for RepositoryXmlHandler, useful for debugging parsing of repository.xml!
  +org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl.LogLevel=WARN
  +org.apache.ojb.broker.core.PersistenceBrokerImpl.LogLevel=WARN
  +#
  +# Logger for metadata classes, useful for debugging parsing of repository.xml!
   # persistence capable object metadata
  +org.apache.ojb.broker.metadata.DescriptorRepository.LogLevel=WARN
   org.apache.ojb.broker.metadata.RepositoryXmlHandler.LogLevel=WARN
  -# Logger for ConnectionDescriptorXmlHandler, useful for debugging parsing of repository.xml!
  -# connection specific metadata
   org.apache.ojb.broker.metadata.ConnectionDescriptorXmlHandler.LogLevel=WARN
  -# Logger for JdbcAccess, useful for debugging JDBC related problems
  +org.apache.ojb.broker.metadata.RepositoryPersistor.LogLevel=WARN
  +org.apache.ojb.broker.metadata.SuperReferenceDescriptor$SuperReferenceField.LogLevel=WARN
  +#
  +# Logger for jdbc access querying and object materialization, useful
  +# for debugging JDBC related problems
   org.apache.ojb.broker.accesslayer.JdbcAccessImpl.LogLevel=WARN
  -# BatchManager implementation class
  -org.apache.ojb.broker.accesslayer.batch.BatchManagerImpl.LogLevel=WARN
  -# BatchStrategy implementation
  -org.apache.ojb.broker.accesslayer.batch.BatchStrategyDefaultImpl.LogLevel=WARN
  -# Logger for RsIterator, useful for debugging problems with Object materialization
   org.apache.ojb.broker.accesslayer.RsIterator.LogLevel=WARN
  -# Logger for SqlGenerator, useful for debugging generation of SQL
  +org.apache.ojb.broker.accesslayer.StatementsForClassImpl.LogLevel=WARN
   org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.LogLevel=WARN
  -# Logger for RepositoryPersistor
  -org.apache.ojb.broker.metadata.RepositoryPersistor.LogLevel=WARN
  -# Logger for ConnectionFactory base class
  -org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.LogLevel=WARN
  -# Logger for ConnectionManager
  +#
  +# Jdbc Batch Handling
  +org.apache.ojb.broker.accesslayer.batch.BatchManagerImpl.LogLevel=WARN
  +org.apache.ojb.broker.accesslayer.batch.BatchStrategyDefaultImpl.LogLevel=WARN
  +#
  +# Logger for connection handling
   org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.LogLevel=WARN
  -# Logger for IndirectionHandler class
  -org.apache.ojb.broker.core.proxy.IndirectionHandler.LogLevel=WARN
  -# Logger for Sessionache
  -org.apache.ojb.broker.cache.SessionCacheImpl.LogLevel=WARN
  -# Logger for CachingManager class
  -org.apache.ojb.broker.cache.CachingManager.LogLevel=WARN
  -# Logger for ObjectCache implemenations:
  +org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.LogLevel=WARN
  +org.apache.ojb.broker.accesslayer.ConnectionFactoryPooledImpl.LogLevel=WARN
  +org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl.LogLevel=WARN
  +#
  +# Logger for object caching
  +org.apache.ojb.broker.cache.CacheDistributor.LogLevel=WARN
  +org.apache.ojb.broker.cache.MaterializationCache.LogLevel=WARN
  +org.apache.ojb.broker.cache.ObjectCacheDefaultImpl.LogLevel=WARN
   org.apache.ojb.broker.cache.ObjectCacheJCSImpl.LogLevel=WARN
   org.apache.ojb.broker.cache.ObjectCacheOSCacheImpl.LogLevel=WARN
  -org.apache.ojb.broker.cache.ObjectCacheDefaultImpl.LogLevel=WARN
  +#
   # Logger for Oracle9i platform, useful for tracing failing Oracle-extensions or large LOB-support
   org.apache.ojb.broker.platforms.PlatformOracle9iImpl.LogLevel=WARN
  -# Metadata for super-inheritance
  -org.apache.ojb.broker.metadata.SuperReferenceDescriptor$SuperReferenceField.LogLevel=WARN
  +#
  +# Logger for proxy classes
  +org.apache.ojb.broker.core.proxy.IndirectionHandlerJDKImpl.LogLevel=WARN
  +org.apache.ojb.broker.core.proxy.IndirectionHandlerCGLIBImpl.LogLevel=WARN
  +org.apache.ojb.broker.core.proxy.ProxyFactoryJDKImpl.LogLevel=WARN
  +org.apache.ojb.broker.core.proxy.ProxyFactoryCGLIBImpl.LogLevel=WARN
  +#
   # OJB locking implementations
   org.apache.ojb.broker.locking.LockManagerInMemoryImpl.LogLevel=WARN
   org.apache.ojb.broker.locking.LockManagerCommonsImpl.LogLevel=WARN
  @@ -98,7 +110,7 @@
   org.apache.ojb.broker.locking.CommonsOJBLockManager.LogLevel=WARN
   #
   # odmg-api
  -#
  +# --------
   org.apache.ojb.odmg.TransactionImpl.LogLevel=WARN
   org.apache.ojb.odmg.J2EETransactionImpl.LogLevel=WARN
   org.apache.ojb.odmg.ImplementationImpl.LogLevel=WARN
  @@ -110,18 +122,12 @@
   org.apache.ojb.odmg.JTATxManager.LogLevel=WARN
   #
   #
  -# Special Logger categories used in test suite and tutorials
  +# Special Logger categories used in test suite
   #
  -# Logger for the ODMG Implementation
  -ODMG.LogLevel=DEBUG
  -# Logger for the JDO RI Implementation
  -JDO.LogLevel=DEBUG
   # Logger for the performance tests
   performance.LogLevel=INFO
  -# Logger for the soda api
  -soda.LogLevel=WARN
  -# Logger for the factory service
  -ConfigurableFactory.LogLevel=WARN
  +# Logger for the failover tests
  +failover.LogLevel=INFO
   #
   #
   #----------------------------------------------------------------------------------------
  
  
  

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


Mime
View raw message