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);
       }
   
       /**
  
  
  

Reply via email to