You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by ce...@apache.org on 2001/09/21 17:49:44 UTC

cvs commit: jakarta-log4j/src/java/org/apache/log4j Category.java LogManager.java

ceki        01/09/21 08:49:43

  Modified:    src/java/org/apache/log4j Category.java LogManager.java
  Log:
  Moved automatic initialization to the LogManager class from Category.
  This is required in some initialization sequences.
  
  Revision  Changes    Path
  1.53      +0 -115    jakarta-log4j/src/java/org/apache/log4j/Category.java
  
  Index: Category.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Category.java,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- Category.java	2001/09/10 20:01:22	1.52
  +++ Category.java	2001/09/21 15:49:43	1.53
  @@ -39,8 +39,6 @@
   import java.util.MissingResourceException;
   import java.text.MessageFormat;
   import java.util.ResourceBundle;
  -import java.net.URL;
  -import java.net.MalformedURLException;
   
   
   /**
  @@ -89,119 +87,6 @@
     //					   RootCategory(Level.DEBUG));
   
   
  -  /**
  -     This string constant is set to <b>log4j.properties</b> the name
  -     of the file that will be searched by default in classpath. If the
  -     file can be found, then it is fed to the {@link
  -     PropertyConfigurator}.
  -
  -     See also {@link #DEFAULT_CONFIGURATION_KEY} for a more general
  -     alternative.
  -
  -     <p>See also the full description of <a
  -     href="../../../../manual.html#defaultInit">default
  -     intialization</a> procedure.
  -
  -     @since 0.8.5 */
  -     static public final String DEFAULT_CONFIGURATION_FILE = "log4j.properties";
  -     
  -  /**
  -     This string constant is set to <b>log4j.configuration</b>. 
  -
  -     <p>It corresponds to name of a system property that, if set,
  -     specifies the name of the resource containing the properties file
  -     or {@link URL} with which log4j should configure itself. See
  -     {@link OptionConverter#selectAndConfigure} for more detailed
  -     information on the processing of this option.
  -
  -     <p>Setting the <b>log4j.configuration</b> system property
  -     overrides the default search for the file <b>log4j.properties</b>.
  -
  -     <p>Note that all property keys are case sensitive.  
  -
  -     <p>See also the full description of <a
  -     href="../../../../manual.html#defaultInit">default
  -     intialization</a> procedure.
  -
  -     @since 1.0 */
  -     static final public String DEFAULT_CONFIGURATION_KEY="log4j.configuration";
  -
  - /**
  -     This string constant is set to <b>log4j.configuratorClass</b>. 
  -
  -     <p>It corresponds to name of a system property that, if set,
  -     specifies the class name to use to automatically configure
  -     log4j. See {@link OptionConverter#selectAndConfigure} for more
  -     detailed information on the processing of this option.
  -
  -     <p>Setting the <b>log4j.configuration</b> system property
  -     overrides the default search for the file <b>log4j.properties</b>.
  -
  -     <p>Note that all property keys are case sensitive.  
  -
  -     <p>See also the full description of <a
  -     href="../../../../manual.html#defaultInit">default
  -     intialization</a> procedure.
  -   
  -     @since 1.2 */
  -     static final public String CONFIGURATOR_CLASS_KEY="log4j.configuratorClass";
  -
  -  /**
  -      Setting the system property <b>log4j.defaultInitOverride</b> to
  -      "true" or any other value than "false" will skip default
  -      configuration process.
  -
  -     <p>The current value of the DEFAULT_INIT_OVERRIDE_KEY string
  -     constant is <b>log4j.defaultInitOverride</b>.
  -
  -     <p>See also the full description of <a
  -     href="../../../../manual.html#defaultInit">default
  -     intialization</a> procedure.
  -
  -     <p>Note that all property keys are case sensitive.  
  -
  -     @since 0.8.5 */
  -  public static final String DEFAULT_INIT_OVERRIDE_KEY = 
  -                                                 "log4j.defaultInitOverride";
  -
  -  /** Search for the properties file log4j.properties in the CLASSPATH.  */
  -  static {
  -
  -    String override =OptionConverter.getSystemProperty(DEFAULT_INIT_OVERRIDE_KEY,
  -						       null);
  -
  -    // if there is no default init override, them get the resource
  -    // specified by the user or the default config file.
  -    if(override == null || "false".equalsIgnoreCase(override)) {
  -      String resource = OptionConverter.getSystemProperty(
  -                                                   DEFAULT_CONFIGURATION_KEY, 
  -						   DEFAULT_CONFIGURATION_FILE);
  -
  -      String configuratorClassName = OptionConverter.getSystemProperty(
  -                                                   CONFIGURATOR_CLASS_KEY, 
  -						   null);
  -
  -      URL url = null;
  -      try {
  -	// so, resource is not a URL:
  -	// attempt to get the resource from the class path
  -	url = new URL(resource);
  -      } catch (MalformedURLException ex) {
  -	url = Loader.getResource(resource); 
  -      }	
  -      
  -      // If we have a non-null url, then delegate the rest of the
  -      // configuration to the OptionConverter.selectAndConfigure
  -      // method.
  -      if(url != null) {
  -	LogLog.debug("Using URL ["+url+"] for automatic log4j configuration.");
  -	OptionConverter.selectAndConfigure(url, configuratorClassName, 
  -					   LogManager.getLoggerRepository());
  -      } else {
  -	LogLog.debug("Could not find resource: ["+resource+"].");
  -      }
  -    }  
  -  } 
   
     /**
        The name of this category.
  
  
  
  1.3       +120 -2    jakarta-log4j/src/java/org/apache/log4j/LogManager.java
  
  Index: LogManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/LogManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LogManager.java	2001/09/05 06:45:28	1.2
  +++ LogManager.java	2001/09/21 15:49:43	1.3
  @@ -13,7 +13,13 @@
   import org.apache.log4j.spi.DefaultRepositorySelector;
   import org.apache.log4j.spi.RootCategory;
   import org.apache.log4j.helpers.Loader;
  +import org.apache.log4j.helpers.OptionConverter;
  +import org.apache.log4j.helpers.LogLog;
   
  +import java.net.URL;
  +import java.net.MalformedURLException;
  +
  +
   import java.util.Enumeration;
   
   /**
  @@ -23,13 +29,125 @@
   */
   public class LogManager {
   
  +  /**
  +     This string constant is set to <b>log4j.properties</b> the name
  +     of the file that will be searched by default in classpath. If the
  +     file can be found, then it is fed to the {@link
  +     PropertyConfigurator}.
  +
  +     See also {@link #DEFAULT_CONFIGURATION_KEY} for a more general
  +     alternative.
  +
  +     <p>See also the full description of <a
  +     href="../../../../manual.html#defaultInit">default
  +     intialization</a> procedure.
  +
  +     @since 0.8.5 */
  +     static public final String DEFAULT_CONFIGURATION_FILE = "log4j.properties";
  +     
  +  /**
  +     This string constant is set to <b>log4j.configuration</b>. 
  +
  +     <p>It corresponds to name of a system property that, if set,
  +     specifies the name of the resource containing the properties file
  +     or {@link URL} with which log4j should configure itself. See
  +     {@link OptionConverter#selectAndConfigure} for more detailed
  +     information on the processing of this option.
  +
  +     <p>Setting the <b>log4j.configuration</b> system property
  +     overrides the default search for the file <b>log4j.properties</b>.
  +
  +     <p>Note that all property keys are case sensitive.  
  +
  +     <p>See also the full description of <a
  +     href="../../../../manual.html#defaultInit">default
  +     intialization</a> procedure.
  +
  +     @since 1.0 */
  +     static final public String DEFAULT_CONFIGURATION_KEY="log4j.configuration";
  +
  + /**
  +     This string constant is set to <b>log4j.configuratorClass</b>. 
  +
  +     <p>It corresponds to name of a system property that, if set,
  +     specifies the class name to use to automatically configure
  +     log4j. See {@link OptionConverter#selectAndConfigure} for more
  +     detailed information on the processing of this option.
  +
  +     <p>Setting the <b>log4j.configuration</b> system property
  +     overrides the default search for the file <b>log4j.properties</b>.
  +
  +     <p>Note that all property keys are case sensitive.  
  +
  +     <p>See also the full description of <a
  +     href="../../../../manual.html#defaultInit">default
  +     intialization</a> procedure.
  +   
  +     @since 1.2 */
  +     static final public String CONFIGURATOR_CLASS_KEY="log4j.configuratorClass";
  +
  +  /**
  +      Setting the system property <b>log4j.defaultInitOverride</b> to
  +      "true" or any other value than "false" will skip default
  +      configuration process.
  +
  +     <p>The current value of the DEFAULT_INIT_OVERRIDE_KEY string
  +     constant is <b>log4j.defaultInitOverride</b>.
  +
  +     <p>See also the full description of <a
  +     href="../../../../manual.html#defaultInit">default
  +     intialization</a> procedure.
  +
  +     <p>Note that all property keys are case sensitive.  
  +
  +     @since 0.8.5 */
  +  public static final String DEFAULT_INIT_OVERRIDE_KEY = 
  +                                                 "log4j.defaultInitOverride";
  +
  +
     static private Object guard = null;
     static private RepositorySelector repositorySelector;
   
     static {
       Hierarchy h = new Hierarchy(new RootCategory(Level.DEBUG));
  -    repositorySelector = new DefaultRepositorySelector(h);    
  -  }
  +    repositorySelector = new DefaultRepositorySelector(h);
  +
  +    /** Search for the properties file log4j.properties in the CLASSPATH.  */
  +    String override =OptionConverter.getSystemProperty(DEFAULT_INIT_OVERRIDE_KEY,
  +						       null);
  +
  +    // if there is no default init override, them get the resource
  +    // specified by the user or the default config file.
  +    if(override == null || "false".equalsIgnoreCase(override)) {
  +      String resource = OptionConverter.getSystemProperty(
  +						  DEFAULT_CONFIGURATION_KEY, 
  +						  DEFAULT_CONFIGURATION_FILE);
  +
  +      String configuratorClassName = OptionConverter.getSystemProperty(
  +                                                   CONFIGURATOR_CLASS_KEY, 
  +						   null);
  +
  +      URL url = null;
  +      try {
  +	// so, resource is not a URL:
  +	// attempt to get the resource from the class path
  +	url = new URL(resource);
  +      } catch (MalformedURLException ex) {
  +	url = Loader.getResource(resource); 
  +      }	
  +      
  +      // If we have a non-null url, then delegate the rest of the
  +      // configuration to the OptionConverter.selectAndConfigure
  +      // method.
  +      if(url != null) {
  +	LogLog.debug("Using URL ["+url+"] for automatic log4j configuration.");
  +	OptionConverter.selectAndConfigure(url, configuratorClassName, 
  +					   LogManager.getLoggerRepository());
  +      } else {
  +	LogLog.debug("Could not find resource: ["+resource+"].");
  +      }
  +    }  
  +  } 
   
     /**
        Sets <code>LoggerFactory</code> but only if the correct
  
  
  

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