Index: org/apache/jetspeed/services/logging/BaseLogger.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/logging/BaseLogger.java,v retrieving revision 1.1 diff -u -r1.1 BaseLogger.java --- org/apache/jetspeed/services/logging/BaseLogger.java 23 Dec 2002 23:14:49 -0000 1.1 +++ org/apache/jetspeed/services/logging/BaseLogger.java 22 Jul 2003 22:37:07 -0000 @@ -59,15 +59,13 @@ import org.apache.turbine.services.logging.Logger; import org.apache.turbine.services.logging.LoggingConfig; -// commons logging classes -import org.apache.commons.logging.Log; - /** * Classes that implement the Logger interface allows loging. * There is set of standart printing methods (info, debug ...). * This is a wrapper for the commons Log object. * * @author Mark Orciuch + * @author Harald Ommang * @version $Id: BaseLogger.java,v 1.1 2002/12/23 23:14:49 morciuch Exp $ */ public class BaseLogger implements Logger @@ -75,7 +73,7 @@ /** * Reference to commons logger */ - private Log log = null; + private JetspeedLogger log = null; /** * Current log level for logger @@ -92,7 +90,7 @@ * * @param log */ - public BaseLogger(Log log) + public BaseLogger(JetspeedLogger log) { this.log = log; } @@ -118,21 +116,21 @@ } /** - * Reference to commons log + * Reference to logger * - * @return commons log + * @return JetspeedLogger */ - public Log getLog() + public JetspeedLogger getLog() { return this.log; } /** - * Sets reference to commons log + * Sets reference to JetspeedLogger * * @param log */ - public void setLog(Log log) + public void setLog(JetspeedLogger log) { this.log = log; } Index: org/apache/jetspeed/services/logging/JetspeedLoggingService.java =================================================================== RCS file: /home/cvspublic/jakarta-jetspeed/src/java/org/apache/jetspeed/services/logging/JetspeedLoggingService.java,v retrieving revision 1.1 diff -u -r1.1 JetspeedLoggingService.java --- org/apache/jetspeed/services/logging/JetspeedLoggingService.java 23 Dec 2002 23:14:49 -0000 1.1 +++ org/apache/jetspeed/services/logging/JetspeedLoggingService.java 22 Jul 2003 22:37:07 -0000 @@ -55,8 +55,9 @@ */ // Java classes -import java.util.Enumeration; -import java.util.Hashtable; +import java.util.Iterator; +import java.util.HashMap; +import java.util.Map; import java.util.Properties; import java.io.FileInputStream; @@ -76,41 +77,34 @@ import org.apache.turbine.util.RunData; import org.apache.turbine.Turbine; -// commons logging classes -import org.apache.commons.logging.LogFactory; - // log4j stuff import org.apache.log4j.PropertyConfigurator; /** - * The default implementation of the logging service in Jetspeed. - * - * This service functions as a logger provider. - * It allows access to loggers: explicit by the getLogger method, - * or by printing methods (info, error...). - * Real work is done by classes that implement interface: Logger. - * The configuration of the service is read from the TurbineResources.properties. - * The rest of the configuration is done through a defined LoggingConfig class. + * This service now only functions as an interim implementation of + * Turbine's LoggingService. In order to facilitate the new Log4J logging + * in Jetspeed, the default logging service behavior of Turbine must be overridden. + * The JetspeedLoggingService now just reroutes to JetspeedLogFactoryService * - * Names of the loggers, classes, log levels, destinations are defined in that file. * - * @see org.apache.turbine.services.logging.Logger + * @see org.apache.jetspeed.services.logging.JetspeedLogFactoryService * @author Mark Orciuch + * @author Harald Ommang * @version $Id: JetspeedLoggingService.java,v 1.1 2002/12/23 23:14:49 morciuch Exp $ */ public class JetspeedLoggingService extends TurbineBaseService implements LoggingService { - - // configuration keys - private static final String CONFIG_LOG4J_PROPERTIES = "log4j.properties"; - private static final String CONFIG_LOG4J_PROPERTIES_DEFAULT = "/WEB-INF/conf/log4j.properties"; - + /** + * Static initialization. Facilitates configuration via JetspeedLogFactoryService + */ + private static final JetspeedLogger logger = JetspeedLogFactoryService.getLogger(JetspeedLoggingService.class.getName()); + /** * loggers repository */ - private Hashtable loggersTable; + private HashMap loggers; /** * logger for methods without target @@ -134,7 +128,7 @@ public JetspeedLoggingService() { - loggersTable = new Hashtable(); + loggers = new HashMap(); defaultLogger = null; } @@ -168,7 +162,7 @@ // Create bootstrap logger, for handling exceptions during service // initialization. - defaultLogger = new BaseLogger(LogFactory.getLog("default")); + defaultLogger = new BaseLogger(logger); simpleLogger = defaultLogger; @@ -218,16 +212,8 @@ + "default logger name in the configuration file."); } - // Configure log4j logging - String log4jProperties = props.getString(this.CONFIG_LOG4J_PROPERTIES, this.CONFIG_LOG4J_PROPERTIES_DEFAULT); - if (log4jProperties != null) - { - configureLog4J(log4jProperties); - } - // Create default logger - defaultLogger = new BaseLogger(LogFactory.getLog(defaultLoggerName)); - loggersTable.put(defaultLoggerName, defaultLogger); + loggers.put(defaultLoggerName, defaultLogger); //checking whether default logger is properly configured if (defaultLogger == null) @@ -237,22 +223,6 @@ } } - private void configureLog4J(String log4jProperties) throws InitializationException - { - try - { - Properties p = new Properties(); - p.load(new FileInputStream(Turbine.getRealPath(log4jProperties))); - p.setProperty("webappRoot", this.context.getRealPath("/")); - PropertyConfigurator.configure(p); - } - catch (Exception e) - { - throw new InitializationException("Failed to load " + log4jProperties + " - " + e.toString()); - } - - } - /** * Shutdowns all loggers. After shutdown servlet logger is still available * using the servlet log method @@ -263,16 +233,12 @@ { return; } - Enumeration iter = loggersTable.elements(); - while (iter.hasMoreElements()) - { - ((Logger) iter.nextElement()).shutdown(); + for ( Iterator iter = loggers.entrySet().iterator(); iter.hasNext(); ) { + Map.Entry entry = (Map.Entry) iter.next(); + ((Logger) entry.getValue()).shutdown(); } - - //HACK!!!!! - //some services may log using our services after shutdown - loggersTable.clear(); + defaultLogger = simpleLogger; //we don't set init as false, because we can still log. @@ -291,15 +257,18 @@ */ public Logger getLogger(String logName) { - Logger logger = (Logger) loggersTable.get(logName); + Logger logger = (Logger) loggers.get(logName); if (logger == null) { - logger = new BaseLogger(LogFactory.getLog(logName)); + logger = new BaseLogger(JetspeedLogFactoryService.getLogger(logName)); if (logger == null) { return defaultLogger; } - loggersTable.put(logName, logger); + else + { + loggers.put(logName, logger); + } } return logger; } @@ -317,7 +286,7 @@ */ public void setLogLevel(String logName, int level) { - Logger logger = (Logger) loggersTable.get(logName); + Logger logger = (Logger) loggers.get(logName); if (logger != null) { logger.setLogLevel(level); @@ -337,7 +306,7 @@ */ public void setFormat(String logName, String format) { - Logger logger = (Logger) loggersTable.get(logName); + Logger logger = (Logger) loggers.get(logName); if (logger != null) { logger.setFormat(format);