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);