If all you are looking for is a configuration safe Hierarchy, then try:

private Logger logger = ConversionLoggerFactory.getLogger(getClass());

Where:

import org.apache.log4j.Hierarchy;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.helpers.Constants;
import org.apache.log4j.helpers.Loader;
import org.apache.log4j.spi.RootCategory;

public class ConversionLoggerFactory {
        
        private static final ConversionLoggerFactory c_instance = new
ConversionLoggerFactory();
        
        public static Logger getLogger(final Class c) {
                return c_instance.m_hierarchy.getLogger(c.getName());
        }
        
        private final Hierarchy m_hierarchy;
        
        private ConversionLoggerFactory() {
                m_hierarchy = new Hierarchy(new RootCategory(Level.DEBUG));
                new
PropertyConfigurator().doConfigure(Loader.getResource(Constants.DEFAULT_CONF
IGURATION_FILE), m_hierarchy);
        }
}


There's no need to wrap/subclass logger, just specify where you would like
to find configuration safe instances of it.

Cheers.

Naresh Sikha 



-----Original Message-----
From: Peake, Chris [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, April 20, 2004 1:36 PM
To: [EMAIL PROTECTED]
Subject: ClassCast exception for factory


I am trying to implement a new logger factory to get around a problem I
posted earlier. I am failing with a classcast exception on the statment
below:
 
    private  ConversionLogger logger = (ConversionLogger)
ConversionLogger.getInstance(this.getClass());
 
The ConverstionLogger and ConversionLoogerFactory are based exactly on the
excamples in source.
 
After trying to figure out how to specify the factory in the properties
file, I came across an answer like below:
log4j.categoryFactory=com.ca.cleverpath.portal.migrate.importer.Conversi
onLoggerFactory.class
 
But I still get the classcast.
 
Can someone help on this?
 
thanks



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to