cziegeler 2004/05/04 07:11:17
Modified: src/java/org/apache/cocoon/servlet CocoonServlet.java
Log:
experimental support for log4j
Revision Changes Path
1.27 +30 -25
cocoon-2.1/src/java/org/apache/cocoon/servlet/CocoonServlet.java
Index: CocoonServlet.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/servlet/CocoonServlet.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- CocoonServlet.java 23 Apr 2004 15:50:34 -0000 1.26
+++ CocoonServlet.java 4 May 2004 14:11:16 -0000 1.27
@@ -42,6 +42,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.avalon.excalibur.logger.Log4JLoggerManager;
import org.apache.avalon.excalibur.logger.LogKitLoggerManager;
import org.apache.avalon.excalibur.logger.LoggerManager;
@@ -761,9 +762,9 @@
* file.
*/
protected void initLogger() {
- String logLevel = getInitParameter("log-level", "INFO");
+ final String logLevel = getInitParameter("log-level", "INFO");
- final String accesslogger = getInitParameter("servlet-logger");
+ final String accesslogger = getInitParameter("servlet-logger",
"cocoon");
final Priority logPriority = Priority.getPriorityForName(logLevel);
@@ -778,8 +779,14 @@
defaultHierarchy.setDefaultLogTarget(servTarget);
defaultHierarchy.setDefaultPriority(logPriority);
final Logger logger = new
LogKitLogger(Hierarchy.getDefaultHierarchy().getLoggerFor(""));
- final LogKitLoggerManager logKitLoggerManager = new
LogKitLoggerManager(defaultHierarchy);
- logKitLoggerManager.enableLogging(logger);
+
+ // the log4j support requires currently that the log4j system is
already configured elsewhere
+ final boolean isLog4JLogger =
"log4j".equals(this.getInitParameter("logger-type", "logkit"));
+
+ final LoggerManager logKitLoggerManager = (isLog4JLogger ?
(LoggerManager)new Log4JLoggerManager()
+ : new
LogKitLoggerManager(defaultHierarchy));
+ ContainerUtil.enableLogging(logKitLoggerManager, logger);
+
final DefaultContext subcontext = new
DefaultContext(this.appContext);
subcontext.put("servlet-context", this.servletContext);
if (this.servletContextPath == null) {
@@ -794,33 +801,31 @@
}
try {
- logKitLoggerManager.contextualize(subcontext);
+ ContainerUtil.contextualize(logKitLoggerManager, subcontext);
this.loggerManager = logKitLoggerManager;
- //Configure the logkit management
- String logkitConfig = getInitParameter("logkit-config",
"/WEB-INF/logkit.xconf");
-
- // test if this is a qualified url
- InputStream is = null;
- if ( logkitConfig.indexOf(':') == -1) {
- is = this.servletContext.getResourceAsStream(logkitConfig);
- if (is == null) is = new FileInputStream(logkitConfig);
- } else {
- URL logkitURL = new URL(logkitConfig);
- is = logkitURL.openStream();
+ if ( !isLog4JLogger ) {
+ //Configure the logkit management
+ String logkitConfig = getInitParameter("logkit-config",
"/WEB-INF/logkit.xconf");
+
+ // test if this is a qualified url
+ InputStream is = null;
+ if ( logkitConfig.indexOf(':') == -1) {
+ is =
this.servletContext.getResourceAsStream(logkitConfig);
+ if (is == null) is = new FileInputStream(logkitConfig);
+ } else {
+ URL logkitURL = new URL(logkitConfig);
+ is = logkitURL.openStream();
+ }
+ final DefaultConfigurationBuilder builder = new
DefaultConfigurationBuilder();
+ final Configuration conf = builder.build(is);
+ ContainerUtil.configure(logKitLoggerManager, conf);
}
- final DefaultConfigurationBuilder builder = new
DefaultConfigurationBuilder();
- final Configuration conf = builder.build(is);
- logKitLoggerManager.configure(conf);
} catch (Exception e) {
errorHandler.error("Could not set up Cocoon Logger, will use
screen instead", e, null);
}
- if (accesslogger != null) {
- this.log =
logKitLoggerManager.getLoggerForCategory(accesslogger);
- } else {
- this.log = logKitLoggerManager.getLoggerForCategory("cocoon");
- }
+ this.log = this.loggerManager.getLoggerForCategory(accesslogger);
}
/**