You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2005/03/02 22:40:00 UTC

cvs commit: jakarta-tomcat-connectors/juli/src/java/org/apache/juli ClassLoaderLogManager.java FileHandler.java

remm        2005/03/02 13:40:00

  Modified:    juli/src/java/org/apache/juli ClassLoaderLogManager.java
                        FileHandler.java
  Log:
  - The java.util.logging javadocs imply that the configuration of the handler (filter, formatter, etc) should be done by the handler itself.
  
  Revision  Changes    Path
  1.2       +30 -3     jakarta-tomcat-connectors/juli/src/java/org/apache/juli/ClassLoaderLogManager.java
  
  Index: ClassLoaderLogManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/juli/src/java/org/apache/juli/ClassLoaderLogManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ClassLoaderLogManager.java	2 Mar 2005 18:30:45 -0000	1.1
  +++ ClassLoaderLogManager.java	2 Mar 2005 21:40:00 -0000	1.2
  @@ -16,13 +16,23 @@
   
   package org.apache.juli;
   
  -import java.util.logging.*;
  -import java.util.*;
   import java.io.IOException;
   import java.io.InputStream;
   import java.net.URLClassLoader;
   import java.security.AccessController;
   import java.security.PrivilegedAction;
  +import java.util.Collections;
  +import java.util.Enumeration;
  +import java.util.HashMap;
  +import java.util.Iterator;
  +import java.util.Map;
  +import java.util.Properties;
  +import java.util.StringTokenizer;
  +import java.util.WeakHashMap;
  +import java.util.logging.Handler;
  +import java.util.logging.Level;
  +import java.util.logging.LogManager;
  +import java.util.logging.Logger;
   
   
   /**
  @@ -294,12 +304,29 @@
                               this.prefix.set(prefix);
                               Handler handler = 
                                   (Handler) classLoader.loadClass(handlerClassName).newInstance();
  -                            this.prefix.set(null);
  +                            // FIXME: The specification strongly implies this should be done in the
  +                            // handler configuration
  +                            /*
  +                            // Initialize handler's level
                               String handlerLevel = 
                                   info.props.getProperty(handlerName + ".level");
                               if (handlerLevel != null) {
                                   handler.setLevel(Level.parse(handlerLevel.trim()));
                               }
  +                            // Initialize filter
  +                            String filterName =
  +                                info.props.getProperty(handlerName + ".filter");
  +                            if (filterName != null) {
  +                                try {
  +                                    handler.setFilter
  +                                        ((Filter) classLoader.loadClass(filterName).newInstance());
  +                                } catch (Exception e) {
  +                                    // FIXME: Report this using the main logger ?
  +                                    // Ignore
  +                                }
  +                            }
  +                            */
  +                            this.prefix.set(null);
                               info.handlers.put(handlerName, handler);
                               if (rootHandlers == null) {
                                   localRootLogger.addHandler(handler);
  
  
  
  1.2       +37 -8     jakarta-tomcat-connectors/juli/src/java/org/apache/juli/FileHandler.java
  
  Index: FileHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/juli/src/java/org/apache/juli/FileHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FileHandler.java	2 Mar 2005 18:30:45 -0000	1.1
  +++ FileHandler.java	2 Mar 2005 21:40:00 -0000	1.2
  @@ -23,7 +23,10 @@
   import java.io.UnsupportedEncodingException;
   import java.sql.Timestamp;
   import java.util.logging.ErrorManager;
  +import java.util.logging.Filter;
  +import java.util.logging.Formatter;
   import java.util.logging.Handler;
  +import java.util.logging.Level;
   import java.util.logging.LogManager;
   import java.util.logging.LogRecord;
   import java.util.logging.SimpleFormatter;
  @@ -238,27 +241,53 @@
           LogManager manager = LogManager.getLogManager();
           String className = FileHandler.class.getName();
           
  +        ClassLoader cl = Thread.currentThread().getContextClassLoader();
  +        
           // Retrieve configuration of logging file name
           directory = getProperty(className + ".directory", "logs");
           prefix = getProperty(className + ".prefix", "juli.");
           suffix = getProperty(className + ".suffix", ".log");
   
  -        // FIXME: Add filter configuration in LogManager ?
  -        //setFilter(manager.getFilterProperty(className + ".filter", null));
  -        // FIXME: Add formatter configuration in LogManager ?
  -        //setFormatter(manager.getFormatterProperty(className + ".formatter", new SimpleFormatter()));
  -        // Hardcode for now a SimpleFormatter
  -        setFormatter(new SimpleFormatter());
  -        // FIXME: Add encoding configuration in LogManager ?
  +        // FIXME: This should IMO be shared at the LogManager level, but the javadocs
  +        // seem to imply that this should not be the case for some reason
  +        
  +        // Get logging level for the handler
  +        setLevel(Level.parse(getProperty(className + ".level", "" + Level.ALL)));
  +
  +        // Get filter configuration
  +        String filterName = getProperty(className + ".filter", null);
  +        if (filterName != null) {
  +            try {
  +                setFilter((Filter) cl.loadClass(filterName).newInstance());
  +            } catch (Exception e) {
  +                // Ignore
  +            }
  +        }
  +
  +        // Set formatter
  +        String formatterName = getProperty(className + ".formatter", null);
  +        if (formatterName != null) {
  +            try {
  +                setFormatter((Formatter) cl.loadClass(formatterName).newInstance());
  +            } catch (Exception e) {
  +                // Ignore
  +            }
  +        } else {
  +            setFormatter(new SimpleFormatter());
  +        }
  +        
  +        // Set encoding
           try {
               setEncoding(manager.getProperty(className + ".encoding"));
           } catch (UnsupportedEncodingException e) {
               try {
                   setEncoding(null);
               } catch (Exception ex) {
  +                // Ignore
               }
           }
           
  +        // Set error manager
           setErrorManager(new ErrorManager());
           
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org